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 определяется во
включаемом файле .