LINUX.ORG.RU

новый релиз gnu grep - 2.8

 , ,


0

1

как сообщает Jim Meyering, вышла версия 2.8 популярной программы gnu grep для поиска строк, отвечающих заданному регулярному выражению.

распространяется программа под лицензией gnu gpl версии 3.

исправлены следующие ошибки:

  • команда echo c | grep '[c]' не находила совпадений при любом «c» в диапазоне 0x80..0xff во многих локалях. например, printf '\xff\n'|grep «$(printf '[\xff]')» || echo FAIL печатало «FAIL» вместо ожидающейся строки с совпадением.
  • интерпретация grep-ом диапазонов сейчас более согласована с поведением других инструментов.
  • программа ошибочно завершала работу с кодом возврата 1 при некоторых ошибках в отведении памяти.

домашняя страница проекта

исходные тексты

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

Чтобы использовалоись регулярные выражения, нужно специальный ключ указать, или использовать egrep. А по умолчанию ищет просто строку.

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

ЩИТО?

По умолчанию ищет BRE, а egrep (grep -E) включает ERE.

GotF ★★★★★ ()

И что они sed, awk и grep в один пакет не объеденят?

И pcre использовали бы. И опции -P -B -E (perl, bre, ere), ну или какие возможны. Немного задолбало, особенно когда постоянно не пользуешься, вспоминать, где что работает, и где \ ставить, а где нет.

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

> греп не нужен, есть руби.

персоналки не нужны, есть мэйнфреймы.

sash-kan ()

И такие основополагающие программы теперь прячут в МИНИновости... Уныние на моём ЛОРе...

hobbit ★★★★★ ()

Наконец-то. Давно ждем.

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

настали новые времена.

grub современные лоровцы запускают чаще, чем grep.

sash-kan ()

Очередное минорное обновление, сделанное главным образом для того, чтобы поломать совместимость со старыми версиями.

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

> очередное

совершенно верно, никакой чрезвычайности.

минорное обновление

не затруднит ли вас привести определения минорности обновления?

главным образом для того, чтобы

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

sash-kan ()
Ответ на: комментарий от sash-kan

Исправить ошибки?

Если бы существовал строго определенный стандарт, котороый бы позволял узнать, каков должен быть результат выполнения команды grep для заданных данных и заданного регулярного выражения в заданных условиях (локаль), я бы согласился, что речь идет об исправлении ошибок.

Когда каждая версия grep это поведение изменяет… когда, пользователю приходится составлять таблицы, как работает grep в каком дистрибутиве системы GNU, чтобы его скрипты могли работать в разных системах. Гадать, какие-такие изменения могут быть внесены в дальнейшем. Это не исправление багов, увы, это что-то совсем другое.

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

а чем новость отличается от мини новости кроме размера заголовка ?

и да, по моему тоже уделять grep так мало внимания признак дурного воспитания

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

> Если бы существовал строго определенный стандарт

posix. e.g. http://en.wikipedia.org/wiki/Basic_regular_expression#POSIX_Basic_Regular_Exp...

Это не исправление багов, увы, это что-то совсем другое.

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

чтобы его скрипты могли работать...

... не надо опираться на существующие ошибки. надо сообщать о них разработчикам.

sash-kan ()
Ответ на: комментарий от sash-kan

К сожалению, как именно должны трактоваться квадратные скобочки, написано очень не ясно, особенно, учитывая и не учитывая локали. Не только в стандарте POSIX, но и даже в документации info grep написано об этом очень расплывачато. А если принять во внимание, что grep, собранный --with-included-regex и --without-included-regex работают совершенно по-разному… И что работа grep во многом зависит от (изменяющейся) glibc.

Как определить, какое поведение правильное, а какое, увы, нет?

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

> К сожалению, как именно должны трактоваться квадратные скобочки, написано очень не ясно

не знаю, не знаю. по-моему, тут всё ясно изложено: http://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html#tag_007_003_005

главное, «чтобы скрипты могли работать в разных системах», не надо использовать ranges:

Portable applications must not use range expressions, even though all implementations support them.

sash-kan ()
Ответ на: комментарий от anarquista

>Когда каждая версия grep это поведение изменяет…

С одной стороны, ни разу не сталкивался с изменением поведения грепа.

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

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