grep- (1) страница справочника
название
grep, egrep, fgrep, rgrep - вывести строки, соответствующие шаблонуконспект
grep [ ОПЦИИ ] ШАБЛОН [ ФАЙЛ ...]grep [ ОПЦИИ ] [ -e ШАБЛОН | -f ФАЙЛ ] [ ФАЙЛ ...]
Описание
grep ищет в именованном входном ФАЙЛЕ (или в стандартном вводе, если не указано ни одного файла, или если в качестве имени файла указан единственный дефис-минус ( - )) строки, содержащие совпадение с заданным ШАБЛОНОМ . По умолчанию grep печатает совпадающие строки.Кроме того, доступны три варианта программ egrep, fgrep и rgrep . egrep такой же, как grep -E . fgrep - это то же самое, что и grep -F . rgrep - это то же самое, что и grep -r . Прямой вызов egrep или fgrep устарел, но предоставляется, чтобы позволить историческим приложениям, которые полагаются на них, работать без изменений.
Параметры
Общая информация о программе
- --Помогите
- Напечатайте сообщение об использовании, кратко суммируя эти параметры командной строки и адрес сообщения об ошибке, затем выйдите.
- -V , - версия
- Вывести номер версии grep в стандартный поток вывода. Этот номер версии должен быть включен во все сообщения об ошибках (см. Ниже).
Выбор Matcher
- -E , --extended-regexp
- Интерпретировать PATTERN как расширенное регулярное выражение (ERE, см. Ниже). ( -E определяется POSIX.)
- -F , --fixed-strings
- Интерпретировать PATTERN как список фиксированных строк, разделенных символами новой строки, любой из которых должен соответствовать. ( -F определяется POSIX.)
- -G , --basic-regexp
- Интерпретировать PATTERN как основное регулярное выражение (BRE, см. Ниже). Это по умолчанию.
- -P , --perl-regexp
- Интерпретировать PATTERN как регулярное выражение Perl. Это очень экспериментально, и grep -P может предупредить о невыполненных функциях.
Контроль соответствия
- -e PATTERN , --regexp = PATTERN
- Используйте PATTERN в качестве шаблона. Это полезно для защиты шаблонов, начинающихся с дефиса-минус ( - ). ( -e определяется POSIX.)
- -f ФАЙЛ , --file = ФАЙЛ
- Получить шаблоны из файла , по одному на строку. Пустой файл содержит ноль шаблонов и поэтому ничего не соответствует. ( -f определяется POSIX.)
- -i , --ignore-case
- Игнорируйте различия регистра в PATTERN и во входных файлах. ( -i определяется POSIX.)
- -v , --invert-match
- Инвертируйте смысл соответствия, чтобы выбрать несовпадающие строки. ( -v определяется POSIX.)
- -w , --word-regexp
- Выберите только те строки, которые содержат совпадения, которые образуют целые слова. Тест состоит в том, что соответствующая подстрока должна быть либо в начале строки, либо предшествовать не состоящему из слова символу. Точно так же он должен быть либо в конце строки, либо следовать за символом, не входящим в состав слова. Составляющие слова символы - это буквы, цифры и подчеркивание.
- -x , --line-regexp
- Выберите только те совпадения, которые точно соответствуют всей строке. ( -x определяется POSIX.)
- -y
- Устаревший синоним -i .
Общий выходной контроль
- -c , --count
- Подавить нормальный выход; вместо этого выведите количество совпадающих строк для каждого входного файла. С опцией -v , --invert-match (см. Ниже) подсчитайте несовпадающие строки. ( -c определяется POSIX.)
- --color [ = WHEN ], --colour [ = WHEN ]
- Окружите совпавшие (непустые) строки, совпадающие строки, строки контекста, имена файлов, номера строк, смещения байтов и разделители (для полей и групп строк контекста) escape-последовательностями, чтобы отобразить их в терминале в цвете. Цвета определяются переменной среды GREP_COLORS . Устаревшая переменная среды GREP_COLOR по-прежнему поддерживается, но ее настройка не имеет приоритета. Когда это никогда , всегда , или авто .
- -L , --files-без соответствия
- Подавить нормальный выход; вместо этого выведите имя каждого входного файла, из которого обычно не выводились бы выходные данные. Сканирование остановится при первом совпадении.
- -l , --files-with-match
- Подавить нормальный выход; вместо этого напечатайте имя каждого входного файла, из которого обычно выводился бы вывод. Сканирование остановится при первом совпадении. ( -l определяется POSIX.)
- -m NUM , --max-count = NUM
- Прекратить чтение файла после совпадения строк NUM . Если ввод является стандартным вводом из обычного файла, и выводятся строки соответствия NUM , grep гарантирует, что стандартный ввод расположен сразу после последней строки соответствия перед выходом, независимо от наличия конечных строк контекста. Это позволяет вызывающему процессу возобновить поиск. Когда grep останавливается после NUM совпадающих строк, он выводит любые завершающие контекстные строки. Когда также используется опция -c или --count , grep не выводит счет, превышающий NUM . Когда -v или --invert-matchопция также используется, grep останавливается после вывода NUM несоответствующих строк.
- -о , -подходящий
- Печатайте только совпадающие (непустые) части совпадающей строки, причем каждая такая часть находится на отдельной выходной строке.
- -q , --quiet , --silent
- Тихо; не пишите ничего в стандартный вывод. Выйдите немедленно с нулевым статусом, если найдено какое-либо совпадение, даже если обнаружена ошибка. Также смотрите параметр -s или --no-messages . ( -q определяется POSIX.)
- -s , --no-messages
- Подавлять сообщения об ошибках несуществующих или нечитаемых файлов. Переносимость Примечание: в отличие от GNU Grep , 7 - е издание Unix Grep не соответствует стандарту POSIX, потому что не хватало -q и его -s вариант вели себя как GNU Grep «s -q вариант. USP-стиле grep также не хватает -q, но его опция -s ведет себя как GNU grep . Переносимые сценарии оболочки должны избегать как -q, так и -s и вместо этого перенаправлять стандартный вывод и вывод ошибок в / dev / null . ( -s определяется POSIX.)
Управление префиксом выходной линии
- -b , --byte-offset
- Выведите байтовое смещение от 0 во входном файле перед каждой строкой вывода. Если указан -o ( --only-match ), выведите смещение самой совпадающей детали.
- -H , --with-filename
- Напечатайте имя файла для каждого совпадения. Это значение по умолчанию, когда для поиска требуется более одного файла.
- -h , --no-filename
- Подавить префикс имен файлов на выходе. Это значение по умолчанию, когда для поиска требуется только один файл (или только стандартный ввод).
- --label = LABEL
- Отображать входные данные, поступающие со стандартного ввода, как входные данные из файла LABEL. Это особенно полезно для таких инструментов, как zgrep , например, gzip -cd foo.gz | grep --label = foo что-то
- -n , --line-номер
- Приставьте каждую строку вывода к номеру строки на основе 1 в своем входном файле. ( -n определяется POSIX.)
- -T , --initial-tab
- Убедитесь, что первый символ фактического содержимого строки находится на позиции табуляции, чтобы выравнивание вкладок выглядело нормально. Это полезно с параметрами, которые префиксируют их вывод фактическому содержанию: -H , -n и -b . Чтобы повысить вероятность того, что строки из одного файла начнутся в одном и том же столбце, это также приводит к тому, что номер строки и смещение в байтах (если есть) печатаются с шириной поля минимального размера.
- -u , --unix-byte-offsets
- Сообщать о смещениях байтов в стиле Unix. Этот переключатель заставляет grep сообщать о смещениях байтов, как если бы файл представлял собой текстовый файл в стиле Unix, то есть с обрезанными символами CR. Это даст результаты, идентичные выполнению grep на Unix-машине. Эта опция не имеет никакого эффекта, если только не используется опция -b ; это не влияет на платформы, кроме MS-DOS и MS-Windows.
- -Z , --null
- Выведите нулевой байт ( символ ASCII NUL ) вместо символа, который обычно следует за именем файла. Например, grep -lZ выводит нулевой байт после каждого имени файла вместо обычной новой строки. Эта опция делает вывод однозначным, даже при наличии имен файлов, содержащих необычные символы, такие как переводы строк. Эта опция может использоваться с такими командами, как find -print0 , perl -0 , sort -z и xargs -0 для обработки произвольных имен файлов, даже тех, которые содержат символы новой строки.
Контроль строки контекста
- -A NUM , --after-context = NUM
- Вывести NUM строк конечного контекста после сопоставления строк. Помещает строку, содержащую разделитель групп ( - ), между смежными группами совпадений. С опцией -o или --only-match это не имеет никакого эффекта, и выдается предупреждение.
- -B NUM , --before-context = NUM
- Напечатайте NUM строк переднего контекста перед соответствием строк. Помещает строку, содержащую разделитель групп ( - ), между смежными группами совпадений. С опцией -o или --only-match это не имеет никакого эффекта, и выдается предупреждение.
- -C NUM , - NUM , --context = NUM
- Вывести NUM строк выходного контекста. Помещает строку, содержащую разделитель групп ( - ), между смежными группами совпадений. С опцией -o или --only-match это не имеет никакого эффекта, и выдается предупреждение.
Выбор файлов и каталогов
- -a , --text
- Обрабатывать двоичный файл, как если бы он был текстовым; это эквивалентно опции --binary-files = text .
- --binary-files = TYPE
- Если первые несколько байтов файла указывают, что файл содержит двоичные данные, предположим, что файл имеет тип TYPE . По умолчанию TYPE является двоичным , и grep обычно выводит либо однострочное сообщение о том, что двоичный файл совпадает, либо сообщение отсутствует, если совпадения нет. Если TYPE является не-матч , Grep предполагает , что двоичный файл не соответствует; это эквивалентно опции -I . Если TYPE - текст , grep обрабатывает двоичный файл, как если бы он был текстовым; это эквивалентно опции -a . Предупреждение: grep --binary-files = text может выводить двоичный мусор, который может иметь неприятные побочные эффекты, если вывод является терминалом и если драйвер терминала интерпретирует некоторые из них как команды.
- -D АКЦИЯ , --devices = АКЦИЯ
- Если входным файлом является устройство, FIFO или сокет, используйте ACTION для его обработки. По умолчанию ACTION будет прочитать , что означает , что устройства для чтения так же , как если бы они были обычными файлами. Если ACTION это пропустить , устройства молча пропустили.
- -d АКЦИЯ , --directories = АКЦИЯ
- Если входной файл является каталогом, используйте ACTION для его обработки. По умолчанию ACTION будет прочитать , что означает , что каталоги читаются так же , как если бы они были обычными файлами. Если ACTION это пропустить , каталоги молча пропустили. Если ACTION является recurse , grep рекурсивно читает все файлы в каждом каталоге; это эквивалентно опции -r .
- --exclude = GLOB
- Пропускать файлы, базовое имя которых соответствует GLOB (с использованием подстановочных знаков). A-имя файла Глоб можно использовать * , ? и [ ... ] в качестве символов подстановки, и \ буквально заключать в кавычки символы подстановки или обратную косую черту.
- --exclude-from = FILE
- Пропускать файлы, базовое имя которых совпадает с любым из глобалов имени файла, прочитанных из FILE (с использованием подстановочных знаков, как описано в разделе --exclude ).
- --exclude-dir = DIR
- Исключить каталоги, соответствующие шаблону DIR, из рекурсивных поисков.
- -Я
- Обрабатывать двоичный файл так, как будто он не содержит совпадающих данных; это эквивалентно параметру --binary-files = без соответствия .
- --include = GLOB
- Выполняйте поиск только в тех файлах, базовое имя которых соответствует GLOB (с использованием подстановочных знаков, как описано в разделе --exclude ).
- -R , -r , --recursive
- Читать все файлы в каждом каталоге, рекурсивно; это эквивалентно опции -d recurse .
Другие варианты
- --line-буферном
- Используйте буферизацию строки на выходе. Это может привести к снижению производительности.
- --mmap
- Если возможно, используйте системный вызов mmap (2) для чтения ввода вместо системного вызова read (2) по умолчанию . В некоторых ситуациях --mmap дает лучшую производительность. Однако --mmap может вызывать неопределенное поведение (включая дампы ядра), если входной файл сжимается во время работы grep или если возникает ошибка ввода-вывода.
- -U , --binary
- Обрабатывать файл (ы) как двоичный файл. По умолчанию в MS-DOS и MS-Windows grep угадывает тип файла, просматривая содержимое первых 32 КБ, прочитанных из файла. Если grep решает, что файл является текстовым файлом, он удаляет символы CR из исходного содержимого файла (чтобы правильные выражения с ^ и $ работали правильно). Указание -U отменяет это предположение, заставляя все файлы быть прочитанными и дословно переданными в соответствующий механизм; если файл представляет собой текстовый файл с парами CR / LF в конце каждой строки, это приведет к сбою некоторых регулярных выражений. Эта опция не влияет на платформы, кроме MS-DOS и MS-Windows.
- -z , --null-data
- Обрабатывайте ввод как набор строк, каждая из которых заканчивается нулевым байтом ( символ ASCII NUL ) вместо новой строки. Как и параметр -Z или --null , этот параметр можно использовать с такими командами, как sort -z, для обработки произвольных имен файлов.
Регулярные выражения
Регулярное выражение - это шаблон, который описывает набор строк. Регулярные выражения создаются аналогично арифметическим выражениям с использованием различных операторов для объединения меньших выражений.grep понимает две разные версии синтаксиса регулярных выражений: «базовый» и «расширенный». В GNU grep нет разницы в доступной функциональности с использованием любого синтаксиса. В других реализациях базовые регулярные выражения менее мощны. Следующее описание относится к расширенным регулярным выражениям; различия для основных регулярных выражений суммируются впоследствии.
Основными строительными блоками являются регулярные выражения, соответствующие одному символу. Большинство символов, включая все буквы и цифры, являются регулярными выражениями, которые соответствуют друг другу. Любой метасимвол со специальным значением может быть заключен в кавычки, если ему предшествует обратный слеш.
Период . соответствует любому отдельному символу.
Классы персонажей и выражения в скобках
Выражение скобки представляет собой список символов , заключенных на [ и ] . Это соответствует любому отдельному символу в этом списке; если первым символом списка является символ ^, то он соответствует любому символу, отсутствующему в списке. Например, регулярное выражение [0123456789] соответствует любой отдельной цифре.Внутри выражения в скобках выражение диапазона состоит из двух символов, разделенных дефисом. Он соответствует любому отдельному символу, который сортируется между двумя символами включительно, с использованием последовательности сортировки и набора символов локали. Например, в языковом стандарте C по умолчанию [ad] эквивалентно [abcd] . Многие локали сортируют символы в порядке словаря, и в этих локалях [ad] обычно не эквивалентно [abcd] ; например, это может быть эквивалентно [aBbCcDd] . Для того, чтобы получить традиционную интерпретацию брекет выражений, вы можете использовать C локали, установив LC_ALL переменную среды до значения C .
Наконец, определенные именованные классы символов предопределены в выражениях в скобках следующим образом. Их имена говорят сами за себя, и они [: alnum:] , [: alpha:] , [: cntrl:] , [: digit:] , [: graph:] , [: lower:] , [: print:] , [: punct:] , [: space:] , [: upper:] и [: xdigit:]. Например, [[: alnum:]] означает [0-9A-Za-z], за исключением того, что последняя форма зависит от локали C и кодировки символов ASCII, тогда как первая не зависит от локали и набора символов. (Обратите внимание, что скобки в этих именах классов являются частью символьных имен и должны быть включены в дополнение к скобкам, ограничивающим выражение в скобках.) Большинство метасимволов теряют свое особое значение в выражениях в скобках. Чтобы включить буквальный ] поместите его первым в списке. Точно так же, чтобы включить литерал ^ поместите его где угодно, но не первым. Наконец, чтобы включить литерал - поместите его последним.
Закрепление
Символ каретки ^ и знак доллара $ являются метасимволами, которые соответственно соответствуют пустой строке в начале и конце строки.Символ обратной косой черты и специальные выражения
Символы \ < и \> соответственно соответствуют пустой строке в начале и конце слова. Символ \ b соответствует пустой строке на краю слова, а \ B соответствует пустой строке, если она не на краю слова. Символ \ w является синонимом для [[: alnum:]], а \ W является синонимом для [^ [: alnum:]] .Репетиция
За регулярным выражением может следовать один из нескольких операторов повторения:- ?
- Предыдущий элемент является необязательным и сопоставляется не более одного раза.
- *
- Предыдущий элемент будет соответствовать ноль или более раз.
- +
- Предыдущий элемент будет найден один или несколько раз.
- { n }
- Предыдущий элемент соответствует ровно n раз.
- { п ,}
- Предыдущий элемент соответствует n или более раз.
- {, м }
- Предыдущий элемент соответствует не более m раз.
- { п , м }
- Предыдущий элемент сопоставляется не менее n раз, но не более m раз.
конкатенация
Два регулярных выражения могут быть объединены; результирующее регулярное выражение соответствует любой строке, сформированной путем объединения двух подстрок, которые соответственно соответствуют объединенным выражениям.перемежаемость
Два регулярных выражения могут быть объединены с помощью оператора infix | ; результирующее регулярное выражение соответствует любой строке, совпадающей с любым альтернативным выражением.старшинство
Повторение имеет приоритет над объединением, которое, в свою очередь, имеет приоритет перед изменением. Целое выражение может быть заключено в скобки, чтобы переопределить эти правила приоритета и сформировать подвыражение.Обратные ссылки и выражения
Обратная ссылка \ n , где n - это одна цифра, соответствует подстроке, ранее сопоставленной n- му подвыражению в скобках регулярного выражения.Основные против расширенных регулярных выражений
В основных регулярных выражениях метасимволы ? , + , { , | , ( и ) теряют свое особое значение; вместо этого используйте версии с обратной косой чертой \? , \ + , \ { , \ | , \ ( и \) .Традиционный egrep не поддерживает { метасимвол, а некоторые реализации egrep поддерживают \ { вместо этого, поэтому переносимые скрипты должны избегать { в шаблонах grep -E и использовать [{] для соответствия литералу { .
GNU grep -E пытается поддерживать традиционное использование, предполагая, что { не является особенным, если это будет началом неверной спецификации интервала. Например, команда grep -E aq {1aq ищет двухсимвольную строку {1 вместо сообщения о синтаксической ошибке в регулярном выражении. POSIX.2 допускает такое поведение как расширение, но переносимые сценарии должны избегать этого.
Переменные среды
На поведение grep влияют следующие переменные окружения.Языковой стандарт для категории LC_ foo определяется путем изучения трех переменных среды LC_ALL , LC_ foo , LANG в указанном порядке. Первая из этих установленных переменных указывает локаль. Например, если значение LC_ALL не задано, а значение LC_MESSAGES равно pt_BR , то для категории LC_MESSAGES используется бразильский португальский язык . Языковой стандарт C используется, если не задана ни одна из этих переменных среды, если каталог языковых стандартов не установлен или если grep не был скомпилирован с поддержкой национальных языков (NLS).
- GREP_OPTIONS
- Эта переменная определяет параметры по умолчанию, которые должны быть помещены перед любыми явными параметрами. Например, если GREP_OPTIONS имеет вид aq - двоичные файлы = без совпадения --directories = skipaq , то grep ведет себя так, как если бы были заданы два параметра --binary-files = без сопоставления и --directories = skip до любого явного параметры. Спецификации опций разделены пробелами. Обратная косая черта экранирует следующий символ, поэтому ее можно использовать для указания параметра, содержащего пробел или обратную косую черту.
- GREP_COLOR
- Эта переменная указывает цвет, используемый для выделения сопоставленного (не пустого) текста. Это устарело в пользу GREP_COLORS , но все еще поддерживается. В мт , мс , и MC возможности GREP_COLORS имеют приоритет над ним. Он может указывать только цвет, используемый для выделения соответствующего непустого текста в любой соответствующей строке (выбранная строка, если опция командной строки -v опущена, или контекстная строка, если указана опция -v ). По умолчанию используется значение 01; 31 , что означает жирный красный текст переднего плана на заданном по умолчанию фоне терминала.
- GREP_COLORS
- Определяет цвета и другие атрибуты, используемые для выделения различных частей вывода. Его значение представляет собой список возможностей, разделенных двоеточиями, который по умолчанию равен ms = 01; 31: mc = 01; 31: sl =: cx =: fn = 35: ln = 32: bn = 32: se = 36 с rv и ne булевы возможности опущены (т. е. false). Поддерживаемые возможности заключаются в следующем.
- сл =
- Подстрока SGR для целых выбранных строк (т. Е. Совпадающих строк, если опция командной строки -v опущена, или несоответствующих строк, если указан параметр -v ). Однако, если указаны оба параметра: boolean rv и параметр командной строки -v, вместо этого они применяются к строкам соответствия контекста. По умолчанию пусто (т. Е. Цветовая пара терминала по умолчанию).
- сх =
- Подстрока SGR для целых строк контекста (т. Е. Несовпадающих строк, если опция командной строки -v опущена, или совпадающих строк, если указан параметр -v ). Однако, если указаны оба параметра: boolean rv и параметр командной строки -v, вместо этого они применяются к выбранным несоответствующим строкам. По умолчанию пусто (т. Е. Цветовая пара терминала по умолчанию).
- с.в.
- Логическое значение, которое инвертирует (заменяет) значения возможностей sl = и cx = , если указан параметр командной строки -v . По умолчанию установлено значение false (т. Е. Возможность не указана).
- т = 01; 31
- Подстрока SGR для сопоставления непустого текста в любой совпадающей строке (т. Е. Выбранная строка, если опция командной строки -v опущена, или контекстная строка, если указана опция -v ). Установка этого значения эквивалентна одновременной установке ms = и mc = на одно и то же значение. По умолчанию это жирный красный текст переднего плана над фоном текущей строки.
- мс = 01; 31
- Подстрока SGR для сопоставления непустого текста в выбранной строке. (Это используется только в том случае, если опция командной строки -v опущена.) Эффект возможности sl = (или cx = if rv ) остается активным, когда он включается. По умолчанию передний план выделен жирным красным текстом над текущей строкой. задний план.
- MC = 01; 31
- Подстрока SGR для сопоставления непустого текста в контекстной строке. (Используется только в том случае, если указана опция командной строки -v .) Эффект возможности cx = (или sl = if rv ) остается активным, когда он включается. По умолчанию передним планом выделен жирный красный текст над текущей строкой. задний план.
- п = 35
- Подстрока SGR для имен файлов с префиксом любой строки содержимого. По умолчанию передний план пурпурный текст поверх фона терминала по умолчанию.
- п = 32
- Подстрока SGR для номеров строк с префиксом любой строки содержимого. По умолчанию это зеленый текст переднего плана над фоном терминала по умолчанию.
- = 32 млрд
- Подстрока SGR для байтовых смещений с префиксом любой строки содержимого. По умолчанию это зеленый текст переднего плана над фоном терминала по умолчанию.
- SE = 36
- Подстрока SGR для разделителей, которые вставляются между выбранными полями строки ( :) , между полями строки контекста, ( - ) и между группами смежных строк, если указан ненулевой контекст ( - ). По умолчанию используется голубой текстовый фон над заданным по умолчанию фоном терминала.
- Небраска
- Логическое значение, которое предотвращает очистку до конца строки, используя Erase in Line (EL) вправо ( \\\ 33 [K ) каждый раз, когда заканчивается цветной элемент. Это необходимо для терминалов, на которых EL не поддерживается. Это в противном случае на терминалах , для которых back_color_erase ( BCE ) булево способность TERMINFO не применяется, когда выбранные цвета выделения не влияют на фон, или когда EL слишком медленно или вызывает слишком много мерцания. По умолчанию установлено значение false (т. Е. Возможность не указана).
Обратите внимание, что логические возможности не имеют = ... part. По умолчанию они опущены (то есть false) и становятся истинными, если указаны.
См. Раздел «Выбор графического представления (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-цветного режимов фона.
- LC_ALL , LC_COLLATE , LANG
- Эти переменные определяют локаль для категории LC_COLLATE , которая определяет последовательность упорядочения, используемую для интерпретации выражений диапазона, таких как [az] .
- LC_ALL , LC_CTYPE , LANG
- Эти переменные задают локаль для категории LC_CTYPE , которая определяет тип символов, например, какие символы являются пробелами.
- LC_ALL , LC_MESSAGES , LANG
- Эти переменные определяют языковой стандарт для категории LC_MESSAGES , которая определяет язык, который grep использует для сообщений. Стандартный язык C использует американские сообщения на английском языке.
- POSIXLY_CORRECT
- Если установлено, grep ведет себя так, как требует POSIX.2; в противном случае, grep ведет себя больше как другие программы GNU. POSIX.2 требует, чтобы опции, следующие за именами файлов, рассматривались как имена файлов; по умолчанию такие параметры переставляются в начало списка операндов и рассматриваются как параметры. Кроме того, POSIX.2 требует, чтобы нераспознанные параметры были диагностированы как «незаконные», но, поскольку они на самом деле не противоречат закону, по умолчанию диагностируют их как «недействительные». POSIXLY_CORRECT также отключает _ N _GNU_nonoption_argv_flags_ , как описано ниже.
- _ N _GNU_nonoption_argv_flags_
- (Здесь N - числовой идентификатор процесса grep .) Если i- й символ значения этой переменной среды равен 1 , не рассматривайте i- й операнд grep как опцию, даже если он кажется им. Оболочка может поместить эту переменную в среду для каждой команды, которую она запускает, указав, какие операнды являются результатом расширения по имени файла и поэтому не должны рассматриваться как параметры. Это поведение доступно только с библиотекой GNU C и только когда POSIXLY_CORRECT не установлен.
Статус выхода
Обычно статус выхода равен 0, если выбранные строки найдены, и 1 в противном случае. Но состояние выхода равно 2, если произошла ошибка, если только не используется опция -q или --quiet или --silent и не найдена выбранная строка. Однако обратите внимание, что POSIX только для программ, таких как grep , cmp и diff , обязывает, чтобы состояние выхода в случае ошибки было больше 1; поэтому для переносимости целесообразно использовать логику, которая проверяет это общее условие, вместо строгого равенства с 2.авторское право
Copyright © 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.Это бесплатное программное обеспечение; см. источник для условий копирования. Там нет гарантии; даже не для ИЗДЕЛИИ И ФИТНЕСА ДЛЯ ОСОБЕННОЙ ЦЕЛИ.
ошибки
Сообщения об ошибках
Сообщения об ошибках по электронной почте < Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >, список рассылки, чья веб-страница < http://lists.gnu.org/mailman/listinfo/bug-grep >. Система отслеживания ошибок саванны от grep находится по адресу < http://savannah.gnu.org/bugs/?group=grep >.Известные ошибки
Большое количество повторений в конструкции { n , m } может привести к тому, что grep использует много памяти. Кроме того, некоторые другие неясные регулярные выражения требуют экспоненциального времени и пространства и могут привести к нехватке памяти в grep .Обратные ссылки очень медленные и могут потребовать экспоненциального времени.
Смотрите также
Обычные страницы руководства
awk (1) , cmp (1) , diff (1) , find (1) , gzip (1) , perl (1) , sed (1) , sort (1) , xargs (1) , zgrep (1) , mmap (2) , read (2) , pcre (3) , pcrepattern (3) , terminfo (5) , glob (7) , regex (7) .Страница руководства для программистов POSIX
grep (1p) .Ноты
GNU не Unix, но Unix - зверь; его форма множественного числа - Unixen.
- название
- конспект
- Описание
- Параметры
- Регулярные выражения
- Переменные среды
- Статус выхода
- авторское право
- ошибки
- Смотрите также
- Ноты