Начало работы
Использование
Поиск стандартного вывода (т.е. потока текста)
Шелл-скрипт
$ 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] |
Позиция
|
|
^ |
Начало строки. |
$ |
Конец строки. |
|
^$ |
|
\< |
|
\> |