EGREP(1)

НАЗВАНИЕ
egrep - поиск по шаблону, заданному полным регулярным выражением

СИНТАКСИС


 egrep  [-b] [-c] [-i] [-l] [-n] [-v] [-e специальное_выражение]

        [-f файл] полное_регулярное_выражение [файл ...]

ОПИСАНИЕ
Команда egrep сопоставляет строки исходных файлов с шаблоном, заданным полным_регулярным_выражением. Если файлы не указаны, используется стандартный ввод. Обычно каждая успешно сопоставленная строка копируется на стандартный вывод; если исходных файлов несколько, пе- ред найденной строкой выдается имя файла. В egrep ис- пользуется быстрый детерминированный алгоритм, которому иногда может требоваться экспоненциальное увеличение об ема используемой памяти. В качестве шаблонов воспри- нимаются полные регулярные выражения (выражения, имею- щие своими значениями цепочки символов, и использующие полный набор алфавитно-цифровых и специальных симво- лов). Трактовка полных_регулярных_выражений такая же, как в ed(1), с той только разницей, что не допускается конструкция \( ... \), но воспринимаются следующие рас- ширения:

1. Полное регулярное выражение, заканчивающееся зна- ком +. Оно сопоставляется с одним или несколькими вхождениями этого выражения.

2. Полное регулярное выражение, заканчивающееся зна- ком ?. Оно сопоставляется с одним вхождением этого выражения или пустой цепочкой символов.

3. Два полных регулярных выражения, разделенные зна- ком | или символом перевода строки. Результат со- поставляется с цепочками, удовлетворяющими хотя бы одному из операндов.

4. Для изменения порядка действий полное регулярное выражение может быть заключено в скобки ( и ).

Для экранирования символов $, *, [, ^, |, (, ) и \ от интерпретации shell'ом проще всего заключать полное_ре- гулярное_выражение в одинарные кавычки.

Старшинство операций: [ ], затем * ? +, затем конкате- нация, затем | и перевод строки.

В командной строке могут задаваться следующие опции:

-b
Перед каждой строкой ставить номер блока, в котором она находится. Используется для поиска блока по контексту (блоки нумеруются с нуля).
-c
Выдавать только количество успешно сопоставленных строк.
-i
При сопоставлении не различать большие и малые буквы.
-l
Выдавать только имена файлов, в которых есть успешно сопоставленные строки, разделяя имена переводами строк.
-n
Перед каждой строкой ставить ее номер в файле (строки нумеруются с 1).
-v
Выдавать только строки, не удовлетворяющие шаблону.
-e специальное_выражение
Искать специальное_выражение (полное регулярное выражение, начинающееся со знака -).
-f файл
Полные_регулярные_выражения читаются из файла.

СМ. ТАКЖЕ
ed(1), fgrep(1), grep(1), sed(1), sh(1).

КОДЫ ЗАВЕРШЕНИЯ


  0    Были успешные сопоставления.

  1    Успешных сопоставлений не было.

  2    Есть синтаксические ошибки или  недоступные  файлы

      (даже если были успешные сопоставления).

СЮРПРИЗЫ
В идеале должна быть одна утилита для поиска по шаблону, однако трудно придумать алгоритм, достигающий во всех случаях приемлемого компромисса между расходом времени и памяти.

Длина строки ограничена BUFSIZ символами; более длинные строки обрезаются. Значение BUFSIZ определяется во включаемом файле .