Главная > Обработка текста и поиск > grep

Полное руководство по команде grep

Это руководство по команде `grep` для поиска определенных шаблонов в текстовых файлах или стандартном вводе в Linux. С помощью этого инструмента вы сможете эффективно находить и фильтровать нужный текст.

Основные опции

Используйте различные опции команды `grep` в комбинации для поиска нужного текста.

1. Базовый поиск

2. Опции поиска

3. Опции вывода

4. Рекурсивный поиск

Сгенерированная команда:

Комбинируйте команды.

Описание:

`grep` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Основы регулярных выражений

Команда `grep` поддерживает регулярные выражения для мощного текстового поиска. Используя регулярные выражения, вы можете легко находить сложные шаблоны.

Часто используемые метасимволы регулярных выражений Символы, имеющие особое значение в регулярных выражениях.
Символ Описание Пример
. Любой одиночный символ (кроме новой строки) `a.b` (acb, amb и т. д.)
* Предыдущий символ повторяется 0 или более раз `ab*c` (ac, abc, abbc и т. д.)
+ Предыдущий символ повторяется 1 или более раз `ab+c` (abc, abbc и т. д.)
? Предыдущий символ встречается 0 или 1 раз `ab?c` (ac, abc)
^ Начало строки `^start` (строки, начинающиеся со 'start')
$ Конец строки `end$` (строки, заканчивающиеся на 'end')
[abc] Один из символов в скобках `[aeiou]` (гласные)
[a-z] Один из символов в указанном диапазоне `[0-9]` (цифры)
[^abc] Любой символ, кроме указанных в скобках `[^0-9]` (нецифровой символ)
\b Граница слова `\bword\b` (точно слово 'word')
| Оператор ИЛИ (один из двух шаблонов) `cat|dog` ('cat' или 'dog')

Базовые регулярные выражения (BRE) и расширенные регулярные выражения (ERE)

`grep` по умолчанию использует BRE. Чтобы использовать такие символы, как `+`, `?`, `|`, `(`, `)` со специальным значением, необходимо экранировать их обратной косой чертой (`\`). Опция `-E` включает режим ERE, позволяя использовать эти символы без экранирования. Опция `-P` предоставляет более мощные PCRE.

Примеры использования

Попрактикуйтесь в поиске текста с помощью практических примеров использования команды `grep`.

Поиск 'error' в файле журнала

grep 'error' /var/log/syslog

Выводит все строки, содержащие строку 'error' в файле `syslog`.

Поиск 'failed' без учета регистра и вывод номеров строк

grep -in 'failed' /var/log/auth.log

Ищет 'failed' без учета регистра и отображает результаты с номерами строк.

Вывод только строк без определенного шаблона

grep -v '^#' /etc/nginx/nginx.conf

Выводит строки из файла `nginx.conf`, исключая те, которые начинаются с символа комментария (#).

Поиск 'server_name' в файлах '.conf' включая подкаталоги

grep -r 'server_name' *.conf

Рекурсивно ищет шаблон 'server_name' в файлах с расширением '.conf' в текущем каталоге и всех его подкаталогах.

Поиск конкретного процесса (комбинация ps и pipe)

ps aux | grep apache2

Фильтрует вывод команды `ps aux` для отображения только процессов, связанных с 'apache2'.

Поиск 'warning' или 'critical' в нескольких файлах

grep -E 'warning|critical' /var/log/syslog /var/log/kern.log

Использует оператор ИЛИ (|) в регулярном выражении для поиска сообщений 'warning' или 'critical' в нескольких файлах журнала.



Те же команды в категории