grep, egrep, fgrep, rgrep - вывод строк, соответствующих шаблонам
СИНТАКСИС
grep [ОПЦИЯ]... ШАБЛОНЫ [ФАЙЛ]...
grep [ОПЦИЯ]... -e ШАБЛОНЫ ... [ФАЙЛ]...
grep [ОПЦИЯ]... -f ФАЙЛ_ШАБЛОНОВ ... [ФАЙЛ]...
ОПИСАНИЕ
grep ищет шаблоны в каждом ФАЙЛЕ. В первой форме синтаксиса, которая используется, если опции -e или -f не указаны, первый операнд ШАБЛОНЫ представляет собой один или несколько шаблонов, разделенных символами новой строки, и grep выводит каждую строку, которая соответствует шаблону. Как правило, ШАБЛОНЫ следует заключать в кавычки при использовании grep в командной строке оболочки.
ФАЙЛ, содержащий "-", обозначает стандартный ввод. Если ФАЙЛ не указан, рекурсивный поиск анализирует рабочий каталог, а нерекурсивный поиск считывает данные из стандартного ввода.
Debian также включает в себя программы egrep, fgrep и rgrep. Эти программы идентичны grep -E, grep -F и grep -r соответственно. Эти варианты устарели, но Debian предоставляет их для обратной совместимости. В целях обеспечения переносимости рекомендуется избегать использования этих вариантов и вместо этого использовать grep с соответствующей опцией.
ОПЦИИ
Общая информация о программе
--help Вывести сообщение об использовании и выйти.
-V, --version
Вывести номер версии grep и выйти.
Синтаксис шаблона
-E, --extended-regexp
Интерпретировать ШАБЛОНЫ как расширенные регулярные выражения (EREs, см. ниже).
-F, --fixed-strings
Интерпретировать ШАБЛОНЫ как фиксированные строки, а не регулярные выражения.
-G, --basic-regexp
Интерпретировать ШАБЛОНЫ как основные регулярные выражения (BREs, см. ниже). Это значение по умолчанию.
-P, --perl-regexp
Интерпретировать ШАБЛОНЫ как регулярные выражения, совместимые с Perl (PCREs). Эта опция является экспериментальной при использовании в сочетании с опцией -z (--null-data), и grep -P может предупреждать о нереализованных функциях.
Управление сопоставлением
-e ШАБЛОНЫ, --regexp=ШАБЛОНЫ
Использовать ШАБЛОНЫ в качестве шаблонов. Если эта опция используется несколько раз или в сочетании с опцией -f (--file), выполнить поиск по всем указанным шаблонам. Эту опцию можно использовать для защиты шаблона, начинающегося с "-".
-f ФАЙЛ, --file=ФАЙЛ
Получить шаблоны из ФАЙЛА, по одному на строку. Если эта опция используется несколько раз или в сочетании с опцией -e (--regexp), выполнить поиск по всем указанным шаблонам. Пустой файл содержит ноль шаблонов и, следовательно, не соответствует ничему. Если ФАЙЛ равен "-", читать шаблоны из стандартного ввода.
-i, --ignore-case
Игнорировать различия в регистре символов в шаблонах и входных данных, чтобы символы, отличающиеся только регистром, соответствовали друг другу.
--no-ignore-case
Не игнорировать различия в регистре символов в шаблонах и входных данных. Это значение по умолчанию. Эта опция полезна для передачи в скрипты оболочки, которые уже используют -i, чтобы отменить его эффекты, поскольку эти две опции переопределяют друг друга.
-v, --invert-match
Инвертировать смысл сопоставления, чтобы выбирать строки, не соответствующие шаблону.
-w, --word-regexp
Выбирать только те строки, которые содержат совпадения, представляющие собой целые слова. При этом совпавшая подстрока должна либо находиться в начале строки, либо ей предшествовать символ, не являющийся частью слова. Аналогично, она должна либо находиться в конце строки, либо за ней следовать символ, не являющийся частью слова. Символами, составляющими слово, являются буквы, цифры и символ подчеркивания. Этот параметр не имеет эффекта, если также указан параметр -x.
-x, --line-regexp
Выбирать только те совпадения, которые точно соответствуют всей строке. Для регулярного выражения это эквивалентно заключению шаблона в круглые скобки, а затем окружению его символами ^ и $.
Общий контроль вывода
-c, --count
Подавлять обычный вывод; вместо этого выводить количество соответствующих строк для каждого входного файла. С опцией -v, --invert-match (см. выше) выводить количество строк, не соответствующих шаблону.
--color[=WHEN], --colour[=WHEN]
Окружать соответствующие (непустые) строки, совпадающие строки, строки контекста, имена файлов, номера строк, смещения байтов и разделители (для полей и групп строк контекста) управляющими последовательностями, чтобы отображать их в цвете в терминале. Цвета определяются переменной среды GREP_COLORS. WHEN может быть never, always или auto.
-L, --files-without-match
Подавлять обычный вывод; вместо этого выводить имя каждого входного файла, из которого обычно не выводились бы данные.
-l, --files-with-matches
Подавлять обычный вывод; вместо этого выводить имя каждого входного файла, из которого обычно выводились бы данные. Сканирование каждого входного файла прекращается после первого совпадения.
-m NUM, --max-count=NUM
Прекратить чтение файла после NUM совпадающих строк. Если NUM равно нулю, grep прекращает работу сразу, не читая входные данные. Число NUM, равное -1, рассматривается как бесконечность, и grep не прекращает работу; это значение по умолчанию. Если входные данные поступают из стандартного ввода из обычного файла, и выводится NUM совпадающих строк, grep гарантирует, что стандартный ввод будет перемещен сразу после последней совпадающей строки перед выходом, независимо от наличия последующих строк контекста. Это позволяет вызывающему процессу продолжить поиск. Когда grep прекращает работу после NUM совпадающих строк, он выводит любые последующие строки контекста. Когда также используется опция -c или --count, grep не выводит количество, превышающее NUM. Когда также используется опция -v или --invert-match, grep прекращает работу после вывода NUM строк, не соответствующих шаблону.
-o, --only-matching
Выводить только совпадающие (непустые) части совпадающей строки, причем каждая такая часть выводится в отдельной строке вывода.
-q, --quiet, --silent
Не выводить ничего в стандартный вывод. Немедленно завершить работу со статусом 0, если найдено хотя бы одно совпадение, даже если обнаружена ошибка. Также см. опцию -s или --no-messages.
-s, --no-messages
Подавляет вывод сообщений об ошибках, связанных с несуществующими или недоступными файлами.
Управление префиксом выходной строки
-b, --byte-offset
Выводит смещение в байтах (начиная с 0) внутри входного файла перед каждой строкой вывода. Если указана опция -o (--only-matching), выводится смещение соответствующей части.
-H, --with-filename
Выводит имя файла для каждого совпадения. Это значение по умолчанию, когда для поиска указано более одного файла. Это расширение GNU.
-h, --no-filename
Подавляет добавление имен файлов к выводу. Это значение по умолчанию, когда для поиска указан только один файл (или только стандартный ввод).
--label=LABEL
Отображает входные данные, поступающие из стандартного ввода, как поступающие из файла LABEL. Это может быть полезно для команд, которые преобразуют содержимое файла перед поиском, например, gzip -cd foo.gz | grep --label=foo -H 'some pattern'. См. также опцию -H.
-n, --line-number
Добавляет к каждой строке вывода номер строки (начиная с 1) в пределах входного файла.
-T, --initial-tab
Убедитесь, что первый символ фактического содержимого строки выровнен по позиции табуляции, чтобы выравнивание табуляции выглядело нормально. Это полезно для опций, которые добавляют префикс к своему выводу: -H, -n и -b. Чтобы повысить вероятность того, что строки из одного файла будут начинаться в одной и той же позиции, это также приводит к тому, что номер строки и смещение байтов (если они присутствуют) выводятся в поле минимальной ширины.
-Z, --null
Выводит нулевой байт (ASCII NUL-символ) вместо символа, который обычно следует за именем файла. Например, grep -lZ выводит нулевой байт после каждого имени файла вместо обычной новой строки. Эта опция делает вывод однозначным, даже если имена файлов содержат необычные символы, такие как новые строки. Эту опцию можно использовать с такими командами, как find -print0, perl -0, sort -z и xargs -0 для обработки произвольных имен файлов, даже если они содержат символы новой строки.
Управление контекстными строками
-A NUM, --after-context=NUM
Выводит NUM строк контекста после совпадающих строк. Помещает строку, содержащую разделитель групп (--), между последовательными группами совпадений. С опцией -o или --only-matching это не имеет эффекта и выдается предупреждение.
-B NUM, --before-context=NUM
Выводит NUM строк контекста до совпадающих строк. Помещает строку, содержащую разделитель групп (--), между последовательными группами совпадений. С опцией -o или --only-matching это не имеет эффекта и выдается предупреждение.
-C NUM, -NUM, --context=NUM
Выводит NUM строк выходного контекста. Помещает строку, содержащую разделитель групп (--), между последовательными группами совпадений. С опцией -o или --only-matching это не имеет эффекта и выдается предупреждение.
--group-separator=SEP
При использовании опций -A, -B или -C выводит SEP вместо -- между группами строк.
--no-group-separator
При использовании опций -A, -B или -C не выводит разделитель между группами строк.
Выбор файлов и каталогов
-a, --text
Обрабатывать двоичный файл как текстовый; это эквивалентно опции --binary-files=text.
--binary-files=TYPE
Если данные или метаданные файла указывают на то, что файл содержит двоичные данные, предполагать, что файл имеет тип TYPE. Нетекстовые байты указывают на двоичные данные; это либо выходные байты, которые неправильно закодированы для текущей локали, либо нулевые входные байты, когда не задана опция -z.
По умолчанию TYPE равен binary, и grep подавляет вывод после обнаружения нулевых входных двоичных данных и подавляет строки вывода, содержащие неправильно закодированные данные. Когда часть вывода подавляется, grep выводит сообщение в стандартный поток ошибок о том, что двоичный файл соответствует критериям поиска.
Если TYPE равен without-match, когда grep обнаруживает нулевые входные двоичные данные, он предполагает, что остальная часть файла не соответствует критериям поиска; это эквивалентно опции -I.
Если TYPE равен text, grep обрабатывает двоичный файл как текстовый; это эквивалентно опции -a.
Когда тип равен binary, grep может рассматривать нетекстовые байты как символы конца строки, даже если не задана опция -z. Это означает, что выбор между binary и text может повлиять на то, соответствует ли шаблон файлу. Например, когда тип равен binary, шаблон q$ может соответствовать q, за которым сразу следует нулевой байт, даже если это не соответствует, когда тип равен text. И наоборот, когда тип равен binary, шаблон . (точка) может не соответствовать нулевому байту.
Предупреждение: опция -a может выводить двоичный мусор, что может привести к нежелательным последствиям, если вывод направляется в терминал и если драйвер терминала интерпретирует часть этого как команды. С другой стороны, при чтении файлов, чьи текстовые кодировки неизвестны, может быть полезно использовать -a или установить LC_ALL='C' в среде, чтобы найти больше совпадений, даже если эти совпадения небезопасны для непосредственного отображения.
-D ACTION, --devices=ACTION
Если входной файл является устройством, FIFO или сокетом, используйте ACTION для его обработки. По умолчанию ACTION равен read, что означает, что устройства читаются так же, как и обычные файлы. Если ACTION равен skip, устройства пропускаются без вывода сообщения.
-d ACTION, --directories=ACTION
Если входной файл является каталогом, используйте ACTION для его обработки. По умолчанию ACTION равен read, т.е. каталоги читаются так же, как и обычные файлы. Если ACTION равен skip, каталоги пропускаются без вывода сообщения. Если ACTION равен recurse, читайте все файлы в каждом каталоге рекурсивно, следуя символическим ссылкам только в том случае, если они указаны в командной строке. Это эквивалентно опции -r.
--exclude=GLOB
Пропускать любой файл в командной строке, имя которого заканчивается на строку, соответствующую шаблону GLOB, с использованием сопоставления с подстановочными знаками; суффиксом имени является либо полное имя, либо конечная часть, начинающаяся с символа, отличного от косой черты (/), сразу после косой черты в имени. При рекурсивном поиске пропускать любой подфайл, имя которого соответствует GLOB; базовое имя - это часть после последней косой черты. Шаблон может использовать *, ?, и […] в качестве подстановочных знаков, а \ для буквального указания подстановочного знака или обратной косой черты.
--exclude-from=ФАЙЛ
Исключить файлы, имя которых совпадает с любым из шаблонов имен файлов, прочитанных из ФАЙЛА (с использованием
сопоставления с подстановочными знаками, как описано в --exclude).
--exclude-dir=ШАБЛОН
Исключить любую директорию, указанную в командной строке, имя которой заканчивается и совпадает с шаблоном ШАБЛОН. При
рекурсивном поиске исключить любую поддиректорию, имя которой совпадает с ШАБЛОНОМ. Игнорировать любые
избыточные завершающие слеши в ШАБЛОНЕ.
-I
Обрабатывать двоичный файл так, как если бы он не содержал совпадающие данные; это эквивалентно опции --binary-files=without-match.
--include=ШАБЛОН
Искать только файлы, имя которых совпадает с ШАБЛОНОМ (с использованием сопоставления с подстановочными знаками, как описано в
--exclude). Если указаны противоречивые опции --include и --exclude, то последняя из них имеет приоритет. Если ни одна из опций --include или --exclude не совпадает, файл включается, если только первая из таких опций не является --include.
-r, --recursive
Читать все файлы в каждой директории рекурсивно, следуя по символическим ссылкам, только если они указаны в командной строке. Обратите внимание, что если не указан ни один файл в качестве аргумента, grep выполняет поиск в текущей рабочей директории. Это эквивалентно опции -d recurse.
-R, --dereference-recursive
Читать все файлы в каждой директории рекурсивно. Следовать всем символическим ссылкам, в отличие от -r.
Другие опции
--line-buffered
Использовать построчную буферизацию вывода. Это может привести к снижению производительности.
-U, --binary
Обрабатывать файлы как двоичные. По умолчанию, в MS-DOS и MS-Windows, grep пытается определить, является ли файл текстовым или двоичным, как описано в опции --binary-files. Если grep решает, что файл является текстовым, он удаляет символы CR из исходного содержимого файла (чтобы регулярные выражения с ^ и $ работали правильно). Указание -U отменяет это предположение, заставляя все файлы читаться и передаваться в механизм сопоставления без изменений; если файл является текстовым файлом с парами CR/LF в конце каждой строки, это приведет к сбою некоторых регулярных выражений. Эта опция не имеет эффекта на платформах, отличных от MS-DOS и MS-Windows.
-z, --null-data
Обрабатывать входные и выходные данные как последовательности строк, каждая из которых заканчивается нулевым байтом (ASCII NUL-символом) вместо символа новой строки. Как и опция -Z или --null, эта опция может использоваться с командами, такими как sort -z, для обработки произвольных имен файлов.
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
Регулярное выражение — это шаблон, который описывает набор строк. Регулярные выражения строятся аналогично арифметическим выражениям, путем использования различных операторов для объединения более мелких выражений.
grep понимает три различных версии синтаксиса регулярных выражений: «базовый» (BRE), «расширенный» (ERE) и «perl» (PCRE). В GNU grep базовые и расширенные регулярные выражения являются лишь различными нотациями для одной и той же функциональности сопоставления с образцом. В других реализациях базовые регулярные выражения обычно менее мощные, чем расширенные, хотя иногда бывает и наоборот. Следующее описание относится к расширенным регулярным выражениям; различия для базовых регулярных выражений суммируются позже. Регулярные выражения, совместимые с Perl, имеют другую функциональность и описаны в pcre2syntax(3) и pcre2pattern(3), но работают только в том случае, если включена поддержка PCRE.
Базовыми строительными блоками являются регулярные выражения, соответствующие одному символу. Большинство символов, включая все буквы и цифры, являются регулярными выражениями, соответствующими самим себе. Любой метасимвол, имеющий специальное значение, может быть экранирован путем добавления перед ним обратного слэша.
Символ точки (.) соответствует любому одному символу. Не указано, соответствует ли он ошибке кодировки.
Символьные классы и выражения в скобках
Выражение в скобках — это список символов, заключенный в [ и ]. Оно соответствует любому одному символу в этом списке. Если первый символ в списке — символ «^», то он соответствует любому символу, не входящему в список; не указано, соответствует ли он ошибке кодировки. Например, регулярное выражение [0123456789] соответствует любой одной цифре.
Внутри выражения в скобках диапазон выражений состоит из двух символов, разделенных дефисом. В стандартной локали C оно соответствует любому одному символу, который появляется между этими двумя символами в порядке ASCII, включительно. Например, [a-d] эквивалентно [abcd]. В других локалях поведение не определено: [a-d] может быть эквивалентно [abcd] или [aBbCcDd] или другому выражению в скобках, или оно может не соответствовать ни одному символу, или набор символов, которым оно соответствует, может быть непредсказуемым, или оно может быть недействительным. Чтобы получить традиционную интерпретацию выражений в скобках, вы можете использовать локаль C, установив переменную окружения LC_ALL в значение C.
Наконец, в выражениях в скобках определены определенные именованные классы символов, как показано ниже. Их имена говорят сами за себя: [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] и [:xdigit:]. Например, [[:alnum:]] означает класс символов, состоящий из букв и цифр в текущей локали. В локали C и кодировке символов ASCII это то же самое, что и [0-9A-Za-z]. (Обратите внимание, что скобки в этих именах классов являются частью символьных имен и должны быть включены в дополнение к скобкам, ограничивающим выражение в скобках.) Большинство метасимволов теряют свое специальное значение внутри выражений в скобках. Чтобы включить буквальный символ ], поместите его первым в список. Аналогично, чтобы включить буквальный символ ^, поместите его в любое место, кроме первого. Наконец, чтобы включить буквальный символ -, поместите его последним.
Якорение
Символы «^» и «$» — это метасимволы, которые соответственно соответствуют пустой строке в начале и конце строки.
Символ обратной косой черты и специальные выражения
Символы \< и \> соответственно соответствуют пустой строке в начале и конце слова. Символ \b соответствует пустой строке на границе слова, а \B соответствует пустой строке, если она не находится на границе слова. Символ \w является синонимом [_[:alnum:]], а \W — синонимом [^_[:alnum:]].
Повторение
За регулярным выражением может следовать один из следующих операторов повторения: ? Предшествующий элемент является необязательным и соответствует не более одного раза. * Предшествующий элемент будет соответствовать от нуля до бесконечности раз. + Предшествующий элемент будет соответствовать один или более раз. {n} Предшествующий элемент соответствует ровно n раз. {n,} Предшествующий элемент соответствует n или более раз. {,m} Предшествующий элемент соответствует не более m раз. Это расширение GNU. {n,m} Предшествующий элемент соответствует не менее n раз, но не более m раз.
Конкатенация
Два регулярных выражения могут быть объединены; результирующее регулярное выражение соответствует любой строке, образованной путем конкатенации двух подстрок, которые соответственно соответствуют объединенным выражениям.
Альтернация
Два регулярных выражения могут быть объединены с помощью инфиксного оператора |; результирующее регулярное выражение соответствует любой строке, соответствующей одному из альтернативных выражений.
Приоритет
Повторение имеет приоритет над конкатенацией, которая, в свою очередь, имеет приоритет над альтернацией. Все выражение может быть заключено в круглые скобки, чтобы переопределить эти правила приоритета и сформировать подвыражение.
Обратные ссылки и подвыражения
Обратная ссылка \n, где n — однозначное число, соответствует подстроке, ранее соответствующей n-му заключенному в круглые скобки подвыражению регулярного выражения.
Основные и расширенные регулярные выражения
В основных регулярных выражениях метасимволы ?, +, {, |, (, и ) теряют свое специальное значение; вместо этого используйте версии с обратной косой чертой \?, +, {, |, (, и ).
СТАТУС ВЫХОДА
Обычно статус выхода равен 0, если выбрана строка, 1, если строки не выбраны, и 2, если произошла ошибка. Однако, если используется -q или --quiet или --silent и строка выбрана, статус выхода равен 0, даже если произошла ошибка.
ОКРУЖАЮЩАЯ СРЕДА
На поведение grep влияют следующие переменные среды.
Локаль для категории LC_foo указывается путем проверки трех переменных среды LC_ALL, LC_foo, LANG, в этом порядке. Первая из этих переменных, которая установлена, определяет локаль. Например, если LC_ALL не установлена, но LC_MESSAGES установлена в pt_BR, то для категории LC_MESSAGES будет использоваться бразильская португальская локаль. Локаль C используется, если ни одна из этих переменных среды не установлена, если каталог локали не установлен или если grep не был скомпилирован с поддержкой национальных языков (NLS). Команда оболочки locale -a перечисляет локали, которые в настоящее время доступны.
GREP_COLORS
Управляет тем, как опция --color выделяет вывод. Его значение представляет собой список возможностей, разделенных двоеточием, значение по умолчанию — ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36, при этом логические возможности rv и ne опущены (т.е. false). Поддерживаемые возможности следующие.
sl= SGR-подстрока для всей выбранной строки (т. е. для строк, соответствующих условию, когда опция командной строки -v не указана, или для строк, не соответствующих условию, когда -v указана). Однако, если булева переменная rv и опция командной строки -v указаны вместе, она применяется к строкам контекста, соответствующим условию. По умолчанию — пустая строка (т. е. стандартная цветовая пара терминала).
cx= SGR-подстрока для всей строки контекста (т. е. для строк, не соответствующих условию, когда опция командной строки -v не указана, или для строк, соответствующих условию, когда -v указана). Однако, если булева переменная rv и опция командной строки -v указаны вместе, она применяется к выбранным строкам, не соответствующим условию. По умолчанию — пустая строка (т. е. стандартная цветовая пара терминала).
rv Булево значение, которое меняет (переключает) значения возможностей sl= и cx= при указании опции командной строки -v. По умолчанию — false (т. е. эта возможность не указана).
mt=01;31
SGR-подстрока для соответствующего непустого текста в любой соответствующей строке (т. е. в выбранной строке, когда опция командной строки -v не указана, или в строке контекста, когда -v указана). Установка этой переменной эквивалентна одновременной установке ms= и mc= в одно и то же значение. По умолчанию — полужирный красный цвет текста на текущем фоне строки.
ms=01;31
SGR-подстрока для соответствующего непустого текста в выбранной строке. (Это используется только тогда, когда опция командной строки -v не указана.) Эффект возможности sl= (или cx=, если rv) остается активным, когда это начинает действовать. По умолчанию — полужирный красный цвет текста на текущем фоне строки.
mc=01;31
SGR-подстрока для соответствующего непустого текста в строке контекста. (Это используется только тогда, когда опция командной строки -v указана.) Эффект возможности cx= (или sl=, если rv) остается активным, когда это начинает действовать. По умолчанию — полужирный красный цвет текста на текущем фоне строки.
fn=35 SGR-подстрока для имен файлов, предшествующих любому содержимому строки. По умолчанию — пурпурный цвет текста на стандартном фоне терминала.
ln=32 SGR-подстрока для номеров строк, предшествующих любому содержимому строки. По умолчанию — зеленый цвет текста на стандартном фоне терминала.
bn=32 SGR-подстрока для смещений байтов, предшествующих любому содержимому строки. По умолчанию — зеленый цвет текста на стандартном фоне терминала.
se=36 SGR-подстрока для разделителей, которые вставляются между полями выбранной строки (:), между полями строки контекста (-) и между группами смежных строк, когда указан ненулевой контекст (--). По умолчанию — голубой цвет текста на стандартном фоне терминала.
ne Булево значение, которое предотвращает очистку до конца строки с помощью команды Erase in Line (EL) каждый раз, когда заканчивается цветной элемент. Это необходимо для терминалов, на которых EL не поддерживается. Кроме того, это полезно для терминалов, для которых булева возможность terminfo back_color_erase (bce) не применяется, когда выбранные цвета выделения не влияют на фон или когда EL слишком медлен или вызывает слишком сильное мерцание. По умолчанию — false (т. е. эта возможность не указана).
Обратите внимание, что логические возможности не имеют части =.... Они опущены (т. е. по умолчанию false) и становятся true при указании.
См. раздел «Выбор графического представления» (Select Graphic Rendition, SGR) в документации к используемому текстовому терминалу для получения списка разрешенных значений и их значений в качестве атрибутов символов. Эти значения подстрок являются целыми числами в десятичном представлении и могут быть объединены точкой с запятой. grep обрабатывает сборку результата в полную последовательность SGR (\33[...m). Общие значения для объединения включают 1 для полужирного шрифта, 4 для подчеркивания, 5 для мигания, 7 для инверсии, 39 для цвета текста по умолчанию, 30–37 для цветов текста, 90–97 для цветов текста в 16-цветном режиме, 38;5;0–38;5;255 для 88-цветного и 256-цветного режимов цветов текста, 49 для цвета фона по умолчанию, 40–47 для цветов фона, 100–107 для цветов фона в 16-цветном режиме и 48;5;0–48;5;255 для 88-цветного и 256-цветного режимов цветов фона.
^ C_ALL, LC_COLLATE, LANG
Эти переменные указывают локаль для категории LC_COLLATE, которая определяет порядок сортировки, используемый для интерпретации диапазонов, таких как [a-z].
^ C_ALL, LC_CTYPE, LANG
Эти переменные указывают локаль для категории LC_CTYPE, которая определяет тип символов, например, какие символы являются пробелами. Эта категория также определяет кодировку символов, то есть, используется ли кодировка UTF-8, ASCII или другая кодировка. В локали C или POSIX все символы кодируются одним байтом, и каждый байт является допустимым символом.
^ C_ALL, LC_MESSAGES, LANG
Эти переменные указывают локаль для категории LC_MESSAGES, которая определяет язык, используемый grep для сообщений. Локаль C по умолчанию использует сообщения на американском английском языке.
^ OSIXLY_CORRECT
Если установлено, grep ведет себя так, как этого требует POSIX; в противном случае grep ведет себя больше как другие программы GNU. POSIX требует, чтобы параметры, следующие за именами файлов, рассматривались как имена файлов; по умолчанию такие параметры переносятся в начало списка операндов и рассматриваются как параметры. Кроме того, POSIX требует, чтобы нераспознанные параметры диагностировались как «недопустимые», но поскольку они на самом деле не являются незаконными, по умолчанию они диагностируются как «недействительные».
ЗАМЕЧАНИЯ
Эта страница руководства поддерживается нерегулярно; полная документация часто более актуальна.
АВТОРСКИЕ ПРАВА
Copyright 1998–2000, 2002, 2005–2025 Free Software Foundation, Inc.
Это бесплатное программное обеспечение; см. исходный код для условий копирования. Нет никакой гарантии; даже на пригодность для конкретной цели.
ОШИБКИ
Сообщение об ошибках
Отправляйте сообщения об ошибках по адресу электронной почты для сообщений об ошибках. Доступен архив электронной почты и система отслеживания ошибок.
Известные ошибки
Большое количество повторений в конструкции {n,m} может привести к тому, что grep будет использовать много памяти. Кроме того, некоторые другие неочевидные регулярные выражения требуют экспоненциального времени и памяти и могут привести к тому, что grep исчерпает память.
Обратные ссылки работают очень медленно и могут требовать экспоненциального времени.
ПРИМЕР
В следующем примере выводятся местоположение и содержимое любой строки, содержащей «f» и заканчивающейся на «.c», во всех файлах в текущем каталоге, имена которых содержат «g» и заканчиваются на «.h». Опция -n выводит номера строк, аргумент -- указывает, что расширения «*g*.h», начинающиеся с «-», следует интерпретировать как имена файлов, а не как параметры, и пустой файл /dev/null приводит к тому, что имена файлов выводятся, даже если совпадает только один файл с именем вида «*g*.h».
$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* определения и прототипы для argmatch.c
Соответствует только строка 1 файла argmatch.h. Обратите внимание, что синтаксис регулярных выражений, используемый в шаблоне, отличается от синтаксиса подстановки шаблонов, который оболочка использует для сопоставления имен файлов.
СМОТРИТЕ ТАКЖЕ
Руководства
awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)
Полная документация
Полное руководство доступно. Если программы info и grep правильно установлены в вашей системе, команда
info grep
должна предоставить вам доступ к полному руководству.