Menu
Coddy logo textTech

Grep с флагами

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

grep становится ещё мощнее, когда вы добавляете флаги, чтобы контролировать, как он ищет и что отображает.

Самые полезные флаги grep:

-iнечувствительный к регистру поиск. Сопоставляет независимо от заглавных или строчных букв:

grep -i "error" server.log   # matches error, Error, ERROR

-n — показывать номера строк рядом с каждой совпадающей строкой:

grep -n "error" server.log
3:error: disk full
6:error: connection timeout

-c — показывать только количество совпадающих строк, а не сами строки:

grep -c "error" server.log
2

-vинвертировать поиск — показывать строки, которые не соответствуют шаблону:

grep -v "info" server.log
error: disk full
warning: high memory usage
error: connection timeout

-r — выполняет рекурсивный поиск по всем файлам в директории:

grep -r "error" logs/   # search all files inside the logs folder

-l — показывать только имена файлов, содержащие совпадение, без строк с совпадением:

grep -l "error" *.log

Комбинирование флагов:

Вы можете комбинировать несколько флагов вместе:

grep -in "error" server.log   # case insensitive + show line numbers
grep -vc "info" server.log    # invert + count non-info lines
challenge icon

Задание

Легко

Используйте grep с флагами для осмотра server.log тремя различными способами:

  1. Найдите все строки, содержащие error, и покажите их номера строк с помощью -n
  2. Подсчитайте, сколько строк содержат info, используя -c
  3. Покажите все строки, которые не содержат info, используя -v

Подсказка: Запустите все три команды одну за другой. Каждый флаг изменяет способ представления результатов grep.

Шпаргалка

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

-i — поиск без учета регистра:

grep -i "error" server.log   # matches error, Error, ERROR

-n — показывать номера строк:

grep -n "error" server.log

-c — показывать количество совпадающих строк:

grep -c "error" server.log

-v — инвертировать поиск (показывать несовпадающие строки):

grep -v "info" server.log

-r — рекурсивный поиск по директориям:

grep -r "error" logs/

-l — показывать только имена файлов, содержащих совпадения:

grep -l "error" *.log

Флаги можно комбинировать:

grep -in "error" server.log   # case insensitive + line numbers
grep -vc "info" server.log    # invert + count

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

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

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

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