LINUX.ORG.RU

GNU Grep 2.21

 ,


0

3

Вышла новая стабильная версия программы GNU Grep 2.21. За 25 недель 3 разработчика сделали 94 коммита.

Итогом их работы стали следующие улучшения:

  • значительно увеличена скорость работы с файлами, содержащими пустые области, на тех платформах, где эффективно работает флаг SEEK_DATA системного вызова lseek;
  • более эффективно обрабатываются случаи, когда данные не соответствуют первой части сложного паттерна;
  • увеличена производительность при работе с очень длинными строками в паттернах:
  • если файл содержит некорректные для текущей локали данные, и это удаётся обнаружить до того, как начался вывод, grep рассматривает данный файл как бинарный;
  • grep -P больше не прекращает работу с сообщением об ошибке, если встречает некорректные данные в кодировке UTF-8, теперь эти данные просто считаются не соответствующими шаблону.

Также были внесены исправления ошибок:

  • исправлена работа \w и \W в мнгогобайтовых локалях;
  • исправлен подсчет строк при работе в не-UTF-8 многобайтовых локалях, для проверки предлагается запустить, например, seq 10 | env LC_ALL=zh_CN grep -n .." (ошибка появилась в версии 2.19);
  • grep -F -x -o больше не печатает лишний символ новой строки для каждой «находки» (ошибка тоже появилась в 2.19);
  • исправлена работа grep -F в многобайтовых не-UTF-8 локалях;
  • изменена работа с непарными ')' в grep -E, для совместимости с BusyBox, FreeBSD, Solaris и вообще POSIX. Раньше было так: $ echo ')' | grep -E ')' grep: Unmatched ) or \) а теперь же всё работает;
  • исправлена работа с символическими ссылками в NetBSD.

>>> Подробности

★★★★★

Проверено: fallout4all ()
Последнее исправление: Wizard_ (всего исправлений: 3)

Уже с сегодняшнего синка видно было.

DeadEye ★★★★★
()

увеличена производительность при работе с очень длинные строками в паттернах:

как же без этого!

r0ck3r ★★★★★
()

работы работы работает обрабатываются работе с очень длинные работу работа работе появилоась работа работа всё работае работа

Это пизнес

nikitos ★★★
()
Ответ на: комментарий от Harald

еще очень много не отгрепано! грепаем вместе! грепаем сейчас!

dada ★★★★★
()

Вот в такие моменты при чтении подобных новостей, жалею, что давно не использую Slackware. Так бы скачал тарбол, собрал бы, установил, посмотрел бы как новая версия ... к порядку привык )

Infra_HDC ★★★★★
()
Ответ на: комментарий от Infra_HDC

Так бы скачал тарбол, собрал бы, установил, посмотрел бы как новая версия ... к порядку привык )

Это кощунство, а не порядок, в нормальных дистрах это должно быть в официальных репах.

Deliverance ★★
()
Ответ на: комментарий от Myau

Для такого проекта, как grep, 3 разработчика - это вполне нормальный коллектив.

hobbit ★★★★★
()
Ответ на: комментарий от dexpl

Простите, а зачем вас грепать?

Нет уж, тренеруйтесь вон лучше на кошках.

void_ptr ★★★★
()

Кто-нибудь знает, они когда-нибудь собираются делать \d для цифр? Или так всю оставшуюся жизнь и писать [[:digit:]]?

Teak ★★★★★
()

если встречает некорректные данные в кодировке UTF-8, теперь эти данные просто считаются не соответствующими шаблону.

А как он распознает, где начинаются корректные данные? Первый встречающийся байт <= 127?

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)

А как дела с уязвимостями обстоят?

FIL ★★★★
()
Ответ на: комментарий от Teak

Кто-нибудь знает, они когда-нибудь собираются делать \d для цифр?

└► man grep | grep -- -P
       -P, --perl-regexp
              Interpret PATTERN as a Perl regular expression.  This is highly experimental and grep -P may warn of unimplemented features.

└► echo 123 | grep -P '\d'
123

Ы?

dexpl ★★★★★
()
Ответ на: комментарий от cvs-255

то что вы назвали - критерий окончания цепочки. а так man utf-8.

A-234 ★★★★★
()
Ответ на: комментарий от anonymous

[0-9]

Ты что, тут же лишний символ надо вводить. А ещё пользователи из генты будут жаловаться на производительность. Не знаю на счёт того, что быстрее, но гентушники обязательно будут не довольны.

anonymous
()
Ответ на: комментарий от nikitos

Это пизнес

Нет, это

grep '\<работ'

anonymous
()

А я всегда думал, что подобные утилиты работают идеально и их уже просто некуда улучшать.

anonymous
()
Ответ на: комментарий от anonymous

Ты глубоко заблуждался. Весь этот GNU - тонны дырявого, кривого быдлокода. Факт наличия тьмы полусовместимых разновидностей регулярных выражений и лютая неортогональность всего набора утилит должны были вызвать в твоей душе хоть какое-то подозрение.

anonymous
()

grep -P больше не прекращает работу с сообщением об ошибке, если встречает некорректные данные в кодировке UTF-8

джва года ждал

NightSpamer
()
Ответ на: комментарий от anonymous

Как-то у тебя совсем всё печально. Но ведь утилиты, вроде ls, cp, more и т.п. прекрасно работают (хотя, возможно, я не сталкивался с ситуациями, когда они падают).

anonymous
()

изменена работа с непарными ')' в grep -E, для совместимости с BusyBox, FreeBSD, Solaris и вообще POSIX

Только во Фряху это попадёт лет через 10, если вообще попадёт.

# grep -V
grep (GNU grep) 2.5.1-FreeBSD
prv_cowboy
()

увеличена производительность при работе с очень длинные строками в паттернах:

Проверено: fallout4all

Шоман сбрутил пароль на аккаунте fallout4all ?

WARNING ★★★★
()
Ответ на: комментарий от andrewzvn

И давно у нас ядра процессора стали медленее системы ввода-вывода?

Если я задаю такой вопрос, значит меня интересует именно то, о чем я поинтересовался. Данные можно брать из кеша или ram.
Мне действительно нужно параллелить греп. В некоторых случаях можно его заменить на fgrep (скорость вырастает в разы на тех же ключах), но тогда исчезает возможность использовать регулярные выражения.

xtraeft ★★☆☆
()
Ответ на: комментарий от xio4

Ога, даешь еще больше диалектов регулярных выражений, чтобы жизнь медом не казалась! Какого фаллоса их не переведут на перловые регекспы раз и навсегда, а? Только не говори мне, что это садомазо ради говномамонтовых скриптов сорокалетней давности.

anonymous
()
Ответ на: комментарий от anonymous

Какого фаллоса их не переведут на перловые регекспы раз и навсегда, а?

Ээ, ну про сабж то зачем так?

       -P, --perl-regexp
              Interpret PATTERN as a Perl regular expression.  This is highly experimental and grep -P may warn of unimplemented features.

xtraeft ★★☆☆
()
Ответ на: комментарий от anonymous

Это в котором недошелл вместо бэша?

bash вполне себе POSIX-совместим.

Такие «штандарты» нам не нужны.

А, я и забыл. У нас ведь теперь systemd во все поля: «как накодим — так и стандарт».

argv_0_
()
Ответ на: комментарий от argv_0_

Стандарты - гири на ногах прогресса. Особенно те, что закрепляют говна мамонта на вечные времена.

anonymous
()

ждем версию 2.28

anonymous
()
Ответ на: комментарий от anonymous

Стандарты - гири на ногах прогресса. Особенно те, что закрепляют говна мамонта на вечные времена.

Нет. Если нет стандартов, то OS разработчик Вася будет тратить время на то, чтобы понять, почему его скрипт для загрузки изображений с какого‐то сайта не работает после обновления grep, а не на написание патча для ag. Отсутствие стандарта — это КамАЗ, прикрученный к ноге прогресса якорной цепью.

ZyX
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.