LINUX.ORG.RU

Вышел GNU grep 3.2

 ,


1

1

Почти через полтора года после релиза версии 3.1 вышел GNU grep 3.2.

Новое в этой версии:

  • Опция --files-Without-Match (-L) теперь приводит к успешному выполнению grep когда файл указан в списке, а не когда выбрана строка. Это напоминает то, что делает git-grep.
  • Исправлена работа опции --recursive (-r) на MS-Windows.
  • Более чем 30-ти кратное улучшение производительности когда много выражений имеют общий префикс благодаря улучшениям, которые сделал Норихиро Танака в файле dfa.c из gnulib.
  • Дополнительное ускорение поиска в больших файлах на 3-23% за счет увеличения начального размера буфера.
  • grep теперь диагностирует переполнение стека. До версии 2.6 (2010-й год) grep включал эту функциональность. Начиная с версии 2.6 grep по умолчанию начал обрабатывать регулярные выражения через glibc, и в итоге потерял эту функциональность. А теперь она была добавлена опять.

>>> Скачать

★★★★★

Проверено: jollheef ()

user@deb9$ apt-cache show grep | grep -e ^Version
Version: 2.27-2

Почти через полтора года после релиза версии 3.1 вышел GNU grep 3.2.

У тебя опять из Mageia получается LFS?

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

LFS на то и LFS, чтобы обновлять в нём всё. В т.ч. и библиотеки, и компиляторы с интерпретаторами. А стабильные дистрибутивы на то и стабильные, чтобы в них обновлять отдельный софт при том, что библиотеки, компиляторы и интерпретаторы остаются прежними. С некоторыми исключениями. Так, например, в Магейю 6.1 без проблем притянулись более свежие fpc и lazarus (ещё более свежие (fpc 3.2 (trunk ещё в августе стал 3.3.1, перед этим они отделили эту ветку 3.2) и lazarus 2.0.0 (уже в наличии два релиз кандидата)), кстати, последние месяцы тестируются и готовятся к релизу).

saahriktu ★★★★★ ()

Уже вышел grep 3.3. В нём исправили такой же баг как и в sed'е: были проблемы с соответствием регулярных выражений с '\b' при локали C.

Скачать: ftp://ftp.gnu.org/gnu/grep/grep-3.3.tar.xz

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от mos

да, есть и такой. но я его не тыкал. ag хватает

Я в последнее время перешёл на rg, а то в ag на баги какие-то натыкаюсь регулярно. Единственное, чего не хватает, так это поддержки hgignore, прочее как минимум не хуже.

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

не поддерживает линтеры typescript

Зачем запускать ещё что-то из самого текстового редактора? Ещё понятно когда нужно вставить в текст результат выполнения команды. А для нормальной работы без screen'а или tmux'а не обойтись. И вот из другого окна и можно запускать компиляторы, линтеры и прочее.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от saahriktu

Когда я предложил уволить 2/3 сотрудников МВД мой знакомый спросил, а кто их кормить будет - ты?

Так что этот узкий круг лиц будет пошире круга линуксоидов, я их кормить не хочу.

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

Кто говорит про увольнения?

Во-первых, IDE огромное множество. Во-вторых, не всем нужны именно IDE. В-третьих, пусть виндузятники юзают винду и Visual Studio, никто же не против, а на ЛОРе говорят про линуксы.

Это всё равно как если бы в новость про новый набор утилит util-linux кто-нибудь принёс бы нечто наподобие «У них есть огромный минус - они не совместимы с regedit'ом. Вот запускаю их в WSL/cygwin/mingw/etc, а они не находят параллельно запущенный regedit».

Очевидно, такой софт разрабатывается в первую очередь именно для линуксов и прочих юниксов, и не обязан поддерживать все хотелки виндузятников, которые запускают такой софт в WSL/cygwin/mingw/etc. Поэтому такие вбросы вполне можно приравнять даже к троллингу. С такими вопросами лучше идти на форумы виндузятников, и решать их там, если они такие актуальные.

saahriktu ★★★★★ ()
Последнее исправление: saahriktu (всего исправлений: 2)
Ответ на: комментарий от dem

Ура, специальная олимпиада!!

$ echo -e 'foo\nbar\nololo' | sed -n 's/.*a.*/\0/p'
bar
$ echo -e 'foo\nbar\nololo' | python3 -c 'import sys; import re; print(*filter(None, list(line.strip() if re.match(sys.argv[1], line) else None for line in iter(sys.stdin))), sep="\n")' '.*a.*'
bar
micronekodesu ()
Последнее исправление: micronekodesu (всего исправлений: 1)
Ответ на: комментарий от micronekodesu
echo -e 'foo\nbar\nololo' | while read  r; do [[ $r =~ .*a.* ]] && echo "$r"; done

и можно сделать в зависимости от условий, например, в каждой строке динамически разный regex.

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