Команда grep

Команда grep (Global Regular Expression Print) — это классический инструмент UNIX/Linux, предназначенный для поиска строк, соответствующих заданному шаблону, в одном или нескольких файлах. С его помощью можно находить строки по ключевым словам, использовать регулярные выражения, фильтровать строки, а также выводить контекст до и после найденных совпадений.

Синтаксис
grep [опции] 'шаблон' [файлы]
шаблон — это строка или регулярное выражение, которое нужно найти.
файлы — один или несколько файлов, где будет вестись поиск.

Основные ключи (опции)

Фильтрация

КлючОписание
-iИгнорировать регистр:
grep -i "example" file.txt
-vинверсия: найти строки, не содержащие шаблон:
grep -v "error" file.txt

Контекст и структура вывода

КлючОписание
-nвыводить номера строк с совпадениями:
grep -n "error" file.txt
-cвывести только количество совпадений:
grep -c "error" file.txt
-wискать только целые слова:
grep -w "error" file.txt
-oвыводить только совпавшую часть строки:
grep -o "error" file.txt

Расширенный поиск

КлючОписание
-EПоиск строк, содержащее одно из слов:
grep -E "error|fatal" logs.txt
Поиск строк, содержащих оба слова:
grep -E "error.fatal|fatal.error" logs.txt

Вывод дополнительных строк
-A [NUM] — дополнительно вывести [NUM] строк после совпадения
-B [NUM] — вывести [NUM] строк до
-C [NUM] — вывести строки до и после
Пример:
grep -A 2 "error" file.txt

Ограничение количества результатов
-m [NUM] — остановиться после [NUM] совпадений:
grep -m 8 "fatal" logs.txt

Рекурсивный поиск
-r или -R — искать шаблон рекурсивно во всех файлах и подкаталогах:
grep -R "error" .

Заключение

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

Прокрутить вверх