Содержание

, , , ,

Поиск текста по фрагменту из текста. (grep/egrep)

Примеры

$ grep --color=always -C 2 -R "My search text" ./
$ grep -B 3 -A 5 -i "My search text"
$ cat /etc/squid3/squid.conf | grep "^[^#;]"

Без комментариев

$ cat /etc/squid3/squid.conf | grep "^[^#;]"

Описание

Легендарная команда grep может служить практически для любых целей. Я ее люблю применять не только для поиска нужных файлов в каталоге исходного текста. С помощью grep также можно задавать поиск по регулярным выражениям. Прототип команды: grep 'шаблон поиска' файл_в_котором_искать Пример:

grep -R 'text' /

-команда будет рекурсивно искать во всех текстовых файлах системы слово text. Grep имеет внушительное количество опций которые могут довольно часто понадобиться:

$ grep --help

Использование: grep [КЛЮЧ]… ШАБЛОН [ФАЙЛ]… Поиск ШАБЛОНА в каждом ФАЙЛЕ или в стандартном вводе. По умолчанию, ШАБЛОН представляет собой простое регулярное выражение (BRE). Пример: grep -i 'hello world' menu.h main.c

Выбор типа регулярного выражения и его интерпретация:

Дополнительно:

Управление выводом:

binary, text или without-match.

ДЕЙСТВИЕ может быть read (читать), recurse (рекурсивно), или skip (пропускать).

ДЕЙСТВИЕ может быть 'read' или 'skip'

подпадающие под Ф_ШАБЛОН

файлов из ФАЙЛА

будут пропущены

строк на ФАЙЛ

Управление контекстом:

Вместо egrep предполагается запуск grep -E. Вместо fgrep предполагается grep -F. Запуск под именами egrep или fgrep лучше не выполнять. Когда не задан ФАЙЛ, или когда ФАЙЛ это -, то читается стандартный ввод. Если указано меньше, чем два файла, то предполагает -h. При нахождении совпадений кодом завершения программы будет 0, и 1, если нет.При возникновении ошибок, или если не указан параметр -q, кодом завершения будет 2.