GREP - консольная утилита в операционных системах. С помощью grep в терминале (или эмуляторе) можно осуществлять поиск заданного выражения в текстовых файлах, логах и конфигурационных данных, а так же для фильтрации вывода других комманд и выводить их на экран, если вывод не отменён специальным ключом. Предустановлена в системе, не требует загрузки дополнительных библиотек. Пришла по наследству от [UNIX] систем.
Синтаксис
grep ключи выражение файл
Поиск выражения в каждом файле или в стандартном вводе.
Ключи:
-b Предваряет каждую строку номером блока, в котором она была найдена. Это может пригодиться при поиске блоков по контексту (блоки нумеруются с 0).
-c Выдает только количество строк, содержащих образец.
-h Предотвращает выдачу имени файла, содержащего сопоставившуюся строку, перед собственно строкой. Используется при поиске по нескольким файлам.
-i Игнорирует регистр символов при сравнении выражения и данных ввода.
-l Выдает только имена файлов, содержащих сопоставившиеся строки, по одному в строке. Если образец найден в нескольких строках файла, имя файла не повторяется.
-L Вывод имён файлов, в которых хотя ни одна строка не совпадает с шаблоном.
-n Выдает перед каждой строкой ее номер в файле (строки нумеруются с 1).
-s Подавляет выдачу сообщений о не существующих или недоступных для чтения файлах.
-v Выдает все строки, за исключением содержащих образец.
-w Поиск исключительно по заданному слову. Например, при поиске “the” не будет считаться за совпадение слово “mother”.
-r Рекурсивный поиск (затрагивает все вложенные каталоги и файлы).
-A Вывод двух строк контекста после найденного выражения.
-B Вывод двух строк перед найденным выражением.
-C Вывод двух строк до и двух строк после найденного выражения
Примеры использования
Чтобы указать для поиска любой символ ноль или более раз используйте .*. Для того, чтобы Grep воспринимал спецсимволы как обычные строчные, необходимо воспользоваться обратным слешем, как в оболочке:
grep ‘\<’ filename
Поиск в выводе других комманд осуществляется при помощи символа |. Например, найти строку ‘’wireless’‘ в выводе lspci:
lspci | grep -i wireless
Символ ^ обозначает начало строки.
Символ $ обозначает конец строки.
Например, найти все имена файлов в текущем каталоге, оканчивающихся на ‘’.doc’‘, но не на ’‘.docx’‘:
ls | grep ‘.*doc$’
- Найти текст во множестве файлов в каталоге.
Часто бывает, что нужно найти какой-либо текст (код). Это просто сделать, например:
grep -rnl “text” /var/www/html
Подсветка цветом
По умолчанию во многих дистрибутивах создан псевдоним для утилиты grep с включенной подсветкой найденных совпадений. Вы можете выключить её при помощи ключа ‘’–colour=off’‘, выбрать автоматическую (–colour=auto) или постоянную (–colour=always) подсветку.