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