Команда 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.