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