Как найти строку в файле в Linux?

«Как найти строку в файле в Linux?» — вопрос из категории Linux и командная строка, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Поиск по логам и конфигурационным файлам — ежедневная задача. Основная команда — grep. Она мощная и гибкая.

Базовый синтаксис:

grep "искомая_строка" путь_к_файлу

Практические примеры из работы тестировщика:

  1. Поиск ошибок в лог-файле:

    grep -n "ERROR" /var/log/myapp/app.log

    Ключ -n покажет номера строк, что упрощает навигацию по большому файлу.

  2. Поиск с игнорированием регистра (например, error, Error, ERROR):

    grep -i "timeout" /var/log/myapp/app.log
  3. Рекурсивный поиск по всем файлам в директории:

    grep -r "AssertionError" ./test_results/

    Это полезно, чтобы найти падения тестов в разных отчетах.

  4. Поиск с контекстом:

    grep -B2 -A2 "NullPointerException" app.log

    Ключи -B2 (2 строки до) и -A2 (2 строки после) покажут контекст ошибки.

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

    grep -E "(FAILED|ERROR).*TestSuite" app.log

    Ключ -E включает расширенные регулярные выражения.

  6. Поиск строк, НЕ содержащих шаблон (инвертирование):

    grep -v "DEBUG" app.log > app_without_debug.log

    Полезно для фильтрации шумных логов.

Альтернатива для простого поиска по файлу — less:

less app.log
# Внутри less нажимаем '/' и вводим строку для поиска