Шпаргалка: найти буквальный текст и понять статус grep
Ищите точную строку без регулярных выражений, добавьте номера и отличите отсутствие совпадений от ошибки. Подсчёт строк не равен подсчёту всех вхождений.
Когда открыть эту шпаргалку
Точка, квадратные скобки и другие знаки могут иметь особый смысл в регулярном выражении. Для поиска буквального сообщения выберите -F и передайте шаблон отдельным аргументом. Так задача поиска текста не превращается в задачу построения regex.
Выбор команды
Файл app.log и сообщение queue.full — образцы для подстановки. Опции ниже меняют представление или выбор строк, а не исправляют журнал.
| Что выяснить | Команда или выражение | Как читать результат |
|---|---|---|
| Буквальная строка | grep -F -- 'queue.full' app.log | Точка трактуется буквально. |
| Номера строк | grep -Fn -- 'queue.full' app.log | Номер относится к текущему содержимому файла. |
| Строки без сообщения | grep -Fv -- 'queue.full' app.log | Инверсия отбора, а не удаление подстроки из строки. |
| Число подходящих строк | grep -Fc -- 'queue.full' app.log | Одна строка считается один раз даже при нескольких вхождениях. |
| Только проверка наличия | grep -Fq -- 'queue.full' app.log | Читайте статус; при раннем совпадении GNU grep -q может не сообщить о некоторых ошибках позднего чтения. |
Короткая последовательность
После обычного grep сразу сохраните статус: следующая команда может заменить значение $?. Здесь вывод остаётся видимым для ручной проверки.
grep -Fn -- 'queue.full' app.log
status=$?
printf 'grep status=%s\n' "$status"Проверка вывода
Для обычного grep статус 0 означает найденные совпадения, 1 — их отсутствие, 2 — ошибку. Не называйте любой ненулевой статус аварией. Пустой вывод может соответствовать и отсутствию совпадений, и ошибке открытия: смотрите stderr и код.
Границы применения
Несколько -e описывают альтернативные шаблоны, а последовательные grep в pipeline могут задавать другое условие. Для произвольных бинарных данных выберите подходящую стратегию чтения. Сохранённый номер строки перестаёт быть стабильным указателем после редактирования журнала.
Технические источники
Использованы для проверки поведения. Объяснения и учебные сценарии созданы для проекта.
- Руководство grep(1)
Проверка текста: 2026-09-11. Нативное исполнение на всей матрице дистрибутивов ещё не подтверждено.
Примеры для собственной Linux-системы с Bash и указанными утилитами. Наличие пакетов и набор опций проверьте в установленной версии; браузерный терминал поддерживает только своё подмножество.
От материала к практике
Выберите следующую тему в каталоге Linux или проверьте знакомые команды в учебном терминале.