Семейство программ grep позволяет вам находить в одном или в группе
файлов все строки, которые содержат цепочки символов удовлетворяющих
регулярному выражению или шаблону (подробнее смотрите раздел
4.5).
Само имя grep означает Global Regular Expresion Print - печать
регулярных выражений общего вида. Программы этого семейства можно
использовать как фильтры, т.е. извлекать подходящие под регулярное выражение
строки из стандартного ввода и посылать их на устройство стандартного
вывода.
Программа grep производит поиск символьных цепочек
соответствующих представленному шаблону. Имеется три следующих варианта grep, выбираемых соответствующими параметрами:
-G
-basic-regexp
Интерпретирует шаблон как базовое регулярное выражение. Этот режим
используется по умолчанию.
-E
-extended-regexp
Интерпретирует шаблон как расширенное регулярное выражение.
Программа egrep весьма подобна, но не идентична программе grep -E.
Программа fgrep есть то же, что grep -F.
Все программы семейства grep воспринимают следующие параметры.
-num
Удовлетворяюшие строки будут напечатаны с num
предшествующими строками и num последующими. В этом случае grep
не будет печатать никакую строку более, чем один раз.
-A num
-after-context=num
Вывести на устройство стандартного вывода num строк после найденной.
-B num
-before-context=num
Вывести на устройство стандартного вывода num строк перед найденной
строкой.
-C
-context
Эквивалентно значению -2.
-V
-version
Вывести версию программы на устройство вывода диагностических сообщений.
-b
-byte-offset
Вывести относительный адрес байта в файле для каждой выводимой строки.
-c
-count
Запретить обычный вывод программы. Вместо него вывести число строк, которые
удовлетворяют шаблону. Если этот параметр используется совместно с
параметром -v (см. ниже), то будет выводится число строк не
удовлетворяющих шаблону.
-e pattern
-regexp=pattern
Использовать pattern в качестве шаблона. Эта запись удобна, когда
шаблон начинается со знака - (минус).
-f file
-file=file
Взять шаблон из файла с именем file.
Эта возможность удобна при поиске с использованием символов Кириллицы.
Игнорировать различие в регистрах как в шаблоне так и во вводных файлах.
Обратим внимание, что эта возможность отлично работает для Латиницы, но не
всегда для Кириллицы.
-L
-files-without-match
Запретить обычный вывод.
Вместо этого напечатать имя каждого последовательно проверяемого файла,
в котором не найдено строк соответствующих шаблону. Операция будет
остановлена как только будет найдена первая строка соответствующая шаблону
или будет исчерпан список файлов.
-l
-files-with-matches
Запретить обычный вывод.
Вместо него выдать имя каждого файла, в котором имются строки
удовлетворяющие шаблону.
-n
-line-number
Выдать номера строк в файле вместе с самими строками удовлетворяющими шаблону.
-q
-quiet
Выполняться без вывода. Поиск строк соответствующих шаблону останавливается
на первой же найденной строке. Если строка найдена, устанавливается код
завершения 0, и 1 - в противном случае.
-s
-silent
Запретить сообщения об ошибках если встртились несуществуюшие или нечитаемые
файлы (например, нет доступа по чтению).
-v
-revert-match
Инвертировать смысл соответствия шаблону, т.е. вывести строки, которые не
соответствуют шаблону.
Программа grep понимает две различные версии синтаксиса регулярных
выражений: BASIC - основной и EXTENDED - расширенный.
В GNU grep нет различий при использовании обоих видов синтаксиса.
Регулярные выражения рассматриваются в разделе 4.5.
Для начала полезно получить версию программы grep SPMquotgrep -V"
В ответ печатается:
grep (GNU grep) 2.1
Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
Найти в файле Grep.tex все строки, которые содержат
последовательность -i grep -e -i Grep.tex
В ответ печатается
\item [-i]
\item [-y] удал\"енный синоним для параметра {\bf -i}.
Найти в файле все строки которые содержат в первой слева позиции обратный
слеш
SPMquotgrep ^
Grep.tex"
В ответ будут напечатаны все строки, которые содержат знак обратный слеш в
первой слева позиции.
А команда
SPMquotgrep -v ^