Menu
Coddy logo textTech

Канал с grep

Часть раздела Основы путешествия по Terminal на Coddy. Урок 46 из 82.

Команда grep становится особенно мощной при использовании конвейеров. Вместо поиска внутри файла вы можете отфильтровать вывод любой команды, чтобы найти именно то, что вам нужно.

Представьте, что вы хотите найти определённый файл в списке каталогов:

ls -l | grep "report"

Эта команда подробно перечисляет все файлы, а затем фильтрует их, показывая только строки, содержащие "report". Вы получаете точные результаты, не просматривая всё вручную.

Передача данных в grep работает с любой командой, которая создаёт текстовый вывод. Чтобы найти работающие процессы, связанные с определённой программой:

ps aux | grep "python"

Вы также можете объединять grep с другими командами, которые вы изучили. Чтобы подсчитать, сколько строк содержат определённое слово:

cat logfile.txt | grep "error" | wc -l

Эта команда читает file, отбирает строки с "error", а затем подсчитывает их. Флаги grep, с которыми вы познакомились ранее, работают так же в конвейерах: используйте -i для сопоставления без учёта регистра или -v, чтобы исключить совпадения.

challenge icon

Задание

Легко

Файл access.log содержит записи обращений к веб-серверу. Используйте конвейер, чтобы отфильтровать и подсчитать количество запросов, результатом которых стал код состояния ошибки 500.

Выполните одну команду, которая:

  • Использует cat для чтения access.log
  • Передаёт результат в grep, чтобы отфильтровать строки, содержащие 500
  • Передаёт результат в wc -l, чтобы подсчитать совпадающие строки

Подсказка: Объедините три команды с помощью символа |. Команда grep фильтрует вывод, а wc -l подсчитывает оставшиеся строки.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы

Потренируйтесь самостоятельно: Песочница Terminal