Работа с текстом: команда grep

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

Базовое использование

Чтобы найти шаблон в файле, используйте команду:

grep 'шаблон' имя_файла

Пример: поиск строки “pi” в файле:

grep 'pi' /etc/passwd

Note

Вывод покажет все строки, в которых встречается слово pi — например, строка пользователя:

pi:x:1000:1000:,,,:/home/pi:/bin/bash

Полезные опции

grep поддерживает множество опций. Вот самые популярные:

  • -i — игнорировать регистр (найдёт и Pi, и pi)

  • -r — рекурсивный поиск по всем файлам в папке

  • -v — выводить строки, не содержащие шаблон

Игнорирование регистра

grep -i 'bash' /etc/passwd

Найдёт строки с любым регистром (например, /bin/Bash или /bin/bash).

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

grep -r 'password' /home/pi/projects/

Поиск строки password во всех файлах и подпапках в указанной директории.

Исключение по шаблону (обратное совпадение)

grep -v '127.0.0.1' /etc/hosts

Покажет все строки, не содержащие IP-адрес 127.0.0.1.

Использование регулярных выражений

grep поддерживает регулярные выражения — для сложных шаблонов.

Пример: найти строки, начинающиеся с буквы:

grep '^[A-Za-z]' myfile.txt

Пример: найти все строки, в которых указаны переменные окружения (начинаются с $):

grep '\$' script.sh

Поиск ключевых настроек

Часто нужно искать настройки в конфигурационных файлах:

grep 'dtoverlay=' /boot/config.txt

Или:

grep -i 'enable_uart' /boot/config.txt

Поиск логов по ключевому слову

grep 'error' /var/log/syslog
grep -i 'fail' /var/log/auth.log

Отличный способ отлавливать ошибки и неудачные попытки входа.

Заключение

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

📌 Не забывайте: grep можно сочетать с другими командами через пайпы (|):

dmesg | grep -i usb

Note

Это выведет все строки из dmesg, содержащие usb (в любом регистре).

🎓 Эта команда — основа для работы с текстами в Linux. В следующих разделах мы изучим ещё больше инструментов обработки текста.