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Задание
ЛегкоИспользуйте grep с флагами для осмотра server.log тремя различными способами:
- Найдите все строки, содержащие
error, и покажите их номера строк с помощью-n - Подсчитайте, сколько строк содержат
info, используя-c - Покажите все строки, которые не содержат
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Попробуйте сами
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Каталоги
Создать каталогСкопировать каталогПереместить и переименовать каталогУдалить каталогИтог - Операции с каталогами7Содержимое файлов
Head и TailПодсчёт словКоманда sortКоманда uniqОсновы grepGrep с флагамиПовторение - Текстовый детектив10Проект анализатора логов
Обзор проектаПросмотр файла лога2Навигация
Вывод текущей рабочей директорииСписок файловСмена директорииАбсолютные и относительные путиДомашняя и корневая директорииИтог - Найди свой путь8Перенаправление
Стандартный выводПерезапись в файлДописывание в файлСтандартный вводСтандартная ошибкаПовторение - Сборщик логов11Права доступа
Понимание прав доступаЧтение прав доступаChmod с числамиChmod с символамиВладение файламиПовторение - Заблокируйте доступ14Проект скрипта резервного копирования
Обзор проектаПолучение пути к источнику3Файлы
Создать файлПрочитать файлСкопировать файлПереместить и переименовать файлУдалить файлПовторение - Операции с файлами6Символы подстановки и шаблоны
Звёздный символ подстановкиВопросительный символ подстановкиСкобочные символы подстановкиКомбинирование символов подстановкиПовторение - выборочные операции9Каналы
Что такое каналЦепочка двух командЦепочка нескольких командКанал с grepИтог - Конвейер данных