Утилита grep#

Описание​#

Утилита grep используется для поиска и фильтрации строк в файлах, которые соответствуют определенному шаблону/регулярному выражению, или для фильтрации вывода других утилит.

Синтаксис утилиты:

grep <options> <patterns> <files>

Где:

  • <options> - опции;

  • <patterns> - шаблоны;

  • <files> - файлы.

Опции#

Часто используемые опции утилиты представлены в таблице ниже.

Опции grep#

Опция

Описание

--help

Выводит сообщение об использовании утилиты и завершает работу

-V, --version

Выводит номер версии grep и завершает работу

-E, --extended-regexp

Интерпретирует шаблоны как расширенные регулярные выражения (ERE)

-F, --fixed-strings

Интерпретирует шаблоны как строки, а не регулярные выражения

-G, --basic-regexp

Интерпретирует шаблоны как обычные регулярные выражения

-i, --ignore-case

Игнорирует регистр символов в шаблонах и входных данных при проведении

-v, --invert-match

Инвертирует логику проверки совпадения с шаблоном; обрабатываться будут строки, которые с ним не совпадают

-c, --count

Выводит число строк, совпадающих с шаблоном, вместо вывода самих строк

-e, --regexp

Использует указанный шаблон

-r, --recursive

Считывает все файлы в каждом каталоге рекурсивно, следуя символическим ссылкам только в том случае, если они находятся в командной строке

--color, --colour

Выделит соответствующие элементы с помощью ESC-последовательностей, чтобы отобразить их в цвете на терминале. Цвета определяются переменной окружения GREP_COLORS

-b, --byte-offset

Отображает перед каждой строкой вывода значение смещения во входном файле. Если указана опция -o, выводит значение смещения самой совпадающей части

-o, --only-matching

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

-a, --text

Обработает бинарный файл как текстовый

-m<num>, --max-count=<num>

Прекратит чтение файла после того, как num совпадет с числом строк, например, при -m1 - после 1 строки. Если num равно 0, grep остановится немедленно, не считывая входные данные. -1 - значение по умолчанию, рассматривается как бесконечность, grep не останавливается. Если ввод является стандартным вводом из обычного файла, а выводятся совпадающие строки, grep гарантирует, что стандартный ввод будет размещен сразу после последней совпадающей строки перед завершением, независимо от наличия завершающих строк контекста. Это позволяет вызывающему процессу возобновить поиск. Когда grep останавливается после num совпадающих строк, то выводит все завершающие строки контекста

Примеры использования#

  • Чтобы вывести строки файла path_to_file, которые соответствуют шаблону search_pattern, представляющему собой регулярное выражение в расширенном синтаксисе, и при этом игнорировать регистр символов, введите команду:

    grep --extended-regexp --ignore-case "search_pattern" path_to_file
    

    Аналогичная команда с использованием сокращенной формы опций:

    grep -E -i "search_pattern" path_to_file
    
  • Чтобы вывести количество записей в файле path_to_file, не содержащих строку ERROR без учета регистра символов, введите команду:

    grep -c -v -i "ERROR" path_to_file
    

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man grep

Или:

grep --help