$ grep

Текст и потокисложность: базовыйпакет: grep

Ищет текст по шаблону в файлах и потоках. Она может обрабатывать файл или данные, полученные от другой команды через конвейер. Например, grep -rn "TODO" src/ — все TODO в исходниках, с номерами строк.

Синтаксис

grep [ОПЦИИ] ШАБЛОН [ФАЙЛ...]

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

-iбез учёта регистра
-rрекурсивно по всем файлам каталога
-nпоказывать номера строк
-vинверсия: строки БЕЗ совпадения
-lтолько имена файлов с совпадениями
-cпосчитать число совпадений
-C Nпо N строк контекста вокруг совпадения

Примеры из практики

$ grep -rn "TODO" src/
После запуска · пошаговоЧто произойдёт:
все TODO в исходниках, с номерами строк.

Что появится в терминале:
src/app.js:12:// TODO: добавить кэширование
src/db.js:44:// TODO: обработать повторный запрос

Как понять, что всё получилось:
Команда завершилась без Error/Failed, и в выводе есть ожидаемые данные.

Важно:
Имена, адреса, даты, размеры и номера версий на вашей системе будут другими — это нормально.
все TODO в исходниках, с номерами строк
$ ip addr | grep inet
После запуска · пошаговоЧто произойдёт:
только строки с адресами из вывода ip.

Что появится в терминале:
inet 127.0.0.1/8 scope host lo
    inet 192.168.1.42/24 brd 192.168.1.255 scope global eth0

Как понять, что всё получилось:
Команда завершилась без Error/Failed, и в выводе есть ожидаемые данные.

Важно:
Имена, адреса, даты, размеры и номера версий на вашей системе будут другими — это нормально.
только строки с адресами из вывода ip
$ grep -c " 500 " access.log
После запуска · пошаговоЧто произойдёт:
сколько внутренних ошибок в логе.

Что появится в терминале:
7

Как понять, что всё получилось:
Команда завершилась без Error/Failed, и в выводе есть ожидаемые данные.

Важно:
Имена, адреса, даты, размеры и номера версий на вашей системе будут другими — это нормально.
сколько внутренних ошибок в логе
Совет практика. grep живёт в пайпах: любая команда | grep что-то — и вы видите только нужное.

Поддержка дистрибутивов

Связанные команды