Grep


Начало работы

Использование

Поиск стандартного вывода (т.е. потока текста) Шелл-скрипт $ grep [options] search_string


Поиск точной строки в файле:
```шелл-скрипт
$ grep [options] search_string path/to/file

Вывести строки в файле myfile.txt, содержащие строку “mellon”

$ grep 'mellon' myfile.txt

В имени файла допускаются подстановочные знаки.

Примеры опций

Опция Пример Операция
-i grep -i ^DA demo.txt Забывает о чувствительности к регистру
-w grep -w “of” demo.txt Искать только полное слово
-A grep -A 3 ‘Exception’ error.log Выводить 3 строки после совпадения
-B grep -B 4 ‘Exception’ error.log Отобразить 4 строки до совпадающей строки
-C grep -C 5 ‘Exception’ error.log Отобразить 5 строк вокруг совпадающей строки
-r grep -r ‘cheatsheets.zip’ /var/log/nginx/ Рекурсивный поиск (в пределах подкаталогов)
-v grep -v ‘warning’ /var/log/syslog Вернуть все строки, не соответствующие шаблону
-e grep -e ‘^al’ filename Использовать regex (строки, начинающиеся с ‘al’)
-E grep -E ‘ja(s|cks)on’ filename Extended regex (строки, содержащие jason или jackson)
-c grep -c ’error’ /var/log/syslog Подсчитать количество совпадений
-l grep -l ‘robot’ /var/log/* Вывести имя файла(ов) совпадений
-o grep -o search_string filename
-n grep -n “go” demo.txt Показать номера строк с совпадениями

Регулярные выражения Grep

Refer

Для решения более сложных задач обратитесь к полной версии шпаргалки по regex.

Дикие символы

- -
. Любой символ.
? Необязательный и может встречаться только один раз.
*
+

Квантификаторы

- -
{n} Предыдущий элемент появляется ровно n раз.
{n,} Предыдущий элемент появляется n или более раз.
{,m} Предыдущий элемент появляется максимум n раз.
{n,m} Предыдущий элемент появляется от n до m раз.

POSIX

- -
[:alpha:] Любая строчная и прописная буква.
[:digit:] Любое число.
[:alnum:]
[:пробел:]

Символ

- -
[A-Za-z] Любая строчная и прописная буква.
[0-9] Любая цифра.
[0-9A-Za-z]

Позиция

^ Начало строки.
$ Конец строки.
^$
\<
\>