.\" -*- coding: UTF-8 -*- .de dT .ds Dt \\$2 .. .\" GNU grep man page .dT Time-stamp: 2019-12-29 .\" Update the above date whenever a change to either this file or .\" grep.c's 'usage' function results in a nontrivial change to the man page. .\" In Emacs, you can update the date by running 'M-x time-stamp' .\" after you make a change that you decide is nontrivial. .\" It is no big deal to forget to update the date. . .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH GREP 1 \*(Dt "GNU grep 3.11" "Команди користувача" . .if !\w|\*(lq| \{\ .\" groff an-old.tmac does not seem to be in use, so define lq and rq. . ie \n(.g \{\ . ds lq \(lq\" . ds rq \(rq\" . \} . el \{\ . ds lq `` . ds rq '' . \} .\} . .if !\w|\*(la| \{\ .\" groff an-ext.tmac does not seem to be in use, so define the parts of .\" it that are used below. For a copy of groff an-ext.tmac, please see: .\" https://git.savannah.gnu.org/cgit/groff.git/plain/tmac/an-ext.tmac .\" --- Start of lines taken from groff an-ext.tmac . .\" Check whether we are using grohtml. .nr mH 0 .if \n(.g \ . if '\*(.T'html' \ . nr mH 1 . . .\" Map mono-width fonts to standard fonts for groff's TTY device. .if n \{\ . do ftr CR R . do ftr CI I . do ftr CB B .\} . .\" groff has glyph entities for angle brackets. .ie \n(.g \{\ . ds la \(la\" . ds ra \(ra\" .\} .el \{\ . ds la <\" . ds ra >\" . \" groff's man macros control hyphenation with this register. . nr HY 1 .\} . .\" Start URL. .de UR . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" Start diversion in a new environment. . do ev URL-div . do di URL-div . \} .. . . .\" End URL. .de UE . ie \\n(mH \{\ . br . di . ev . . \" Has there been one or more input lines for the link text? . ie \\n(dn \{\ . do HTML-NS "" . \" Yes, strip off final newline of diversion and emit it. . do chop URL-div . do URL-div . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. . . .\" Start email address. .de MT . ds m1 \\$1\" . nh . if \\n(mH \{\ . \" Start diversion in a new environment. . do ev URL-div . do di URL-div . \} .. . . .\" End email address. .de ME . ie \\n(mH \{\ . br . di . ev . . \" Has there been one or more input lines for the link text? . ie \\n(dn \{\ . do HTML-NS "" . \" Yes, strip off final newline of diversion and emit it. . do chop URL-div . do URL-div . do HTML-NS . \} . el \ . do HTML-NS "\\*(m1" \&\\$*\" . \} . el \ \\*(la\\*(m1\\*(ra\\$*\" . . hy \\n(HY .. .\" --- End of lines taken from groff an-ext.tmac .\} . .hy 0 . .SH НАЗВА grep — виведення рядків, які відповідають взірцям . .SH "КОРОТКИЙ ОПИС" \fBgrep\fP [\fIПАРАМЕТР\fP.\|.\|.]\& \fIЗРАЗОК\fP [\fIФАЙЛ\fP.\|.\|.] .br \fBgrep\fP [\fIПАРАМЕТР\fP.\|.\|.]\& \fB\-e\fP \fIЗРАЗОК\fP \&.\|.\|.\& [\fIФАЙЛ\fP.\|.\|.] .br \fBgrep\fP [\fIПАРАМЕТР\fP.\|.\|.]\& \fB\-f\fP \fIФАЙЛ_ВЗІРЦІВ\fP \&.\|.\|.\& [\fIФАЙЛ\fP.\|.\|.] . .SH ОПИС \fBgrep\fP шукає відповідність зі \fIЗРАЗКОМ\fP у кожному \fIФАЙЛІ\fP. \fIЗРАЗОК\fP – це один або кілька шаблонів, розділених символами нового рядка, а \fBgrep\fP виводить кожен рядок, який відповідає шаблону. Зазвичай, коли \fBgrep\fP використовується в командній оболонці, \fIШАБЛОН\fP слід вводити в лапках. .PP \fIФАЙЛ\fP із \*(lq\fB\-\fP\*(rq означає стандартне введення. Якщо \fIФАЙЛ\fP не вказано, рекурсивний пошук перевіряє поточний каталог, а нерекурсивний зчитує стандартне введення. . .SH ПАРАМЕТРИ .SS "Загальна інформація про програму" .TP \fB\-\^\-help\fP Виводить повідомлення щодо користування програмою та закривається. .TP \fB\-V\fP, \fB\-\^\-version\fP Виводить номер версії \fBgrep\fP. .SS "Синтаксис шаблонів" .TP \fB\-E\fP, \fB\-\^\-extended\-regexp\fP \fIЗРАЗОК\fP розглядається як розширені регулярні вирази (ERE, див. нижче). .TP \fB\-F\fP, \fB\-\^\-fixed\-strings\fP \fIЗРАЗОК\fP розглядається як фіксовані рядки, а не регулярні вирази. .TP \fB\-G\fP, \fB\-\^\-basic\-regexp\fP \fIЗРАЗОК\fP інтерпретується як основні регулярні вирази (BRE, див. нижче). Це є типове значення. .TP \fB\-P\fP, \fB\-\^\-perl\-regexp\fP Інтерпретувати \fIЗРАЗКИ\fP як Perl\-сумісні регулярні вирази (PCRE). Цей параметр є експериментальним у поєднанні з опцією \fB\-z\fP (\fB\-\^\-null\-data\fP), а \fBgrep \-P\fP може попереджати про нереалізовані функції. .SS "Контроль відповідності" .TP \fB\-e\fP\fI PATTERNS\fP,\fB \-\^\-regexp=\fP\fIЗРАЗОК\fP \fIЗРАЗОК\fP використовується як шаблон. Якщо цей параметр використовувати кілька разів або поєднати з параметром \fB\-f\fP (\fB\-\^\-file\fP), відшукуються усі задані зразки. Цей параметр можна використовувати для захисту зразка, який починається з \*(lq\-\*(rq. .TP \fB\-f\fP\fI ФАЙЛ\fP,\fB \-\^\-file=\fP\fIФАЙЛ\fP З \fIФАЙЛ\fP, отримуються зразки по одному на рядок. Якщо цей параметр використовувати кілька разів або поєднати з параметром \fB\-e\fP (\fB\-\^\-regexp\fP), відшукуються усі задані зразки. Порожній файл не містить зразків, тому нічого не відповідає. Якщо замість \fIФАЙЛ\fP вказано \fB\-\fP, прочитати взірці зі стандартного джерела введення. .TP \fB\-i\fP, \fB\-\^\-ignore\-case\fP У зразках та вхідних даних ігнорується різниця регістру, щоб символи, які відрізняються лише регістром, вважалися відповідними. .TP \fB\-\^\-no\-ignore\-case\fP У зразках та вхідних даних не ігнорується регістр. Це типове значення. Цей параметр корисний для передавання до скриптів оболонки, які вже використовують \fB\-i\fP, для скасування його ефектів, оскільки ці два параметри перемикають один одного. .TP \fB\-v\fP, \fB\-\^\-invert\-match\fP Параметр відповідності обертається, щоб вибирати невідповідні зразку рядки. .TP \fB\-w\fP, \fB\-\^\-word\-regexp\fP Вибираються лише ті рядки, що містять збіги, які утворюють цілі слова. Перевірка полягає в тому, що підрядок, який збігається, може знаходитися на початку рядка, або передувати символу, який не входить до складу слова. Так само він може бути в кінці рядка, або за ним може слідувати символ, який не входить до складу слова. Символами, що входять до складу слова, є літери, цифри та символ підкреслення. Цей параметр не діє, якщо також вказано \fB\-x\fP. .TP \fB\-x\fP, \fB\-\^\-line\-regexp\fP Вибираються лише повністю відповідні зразку строки. Для зразка регулярного виразу це все одно, що помістити шаблон у круглі дужки, а потім оточити його \fB^\fP і \fB$\fP. .SS "Загальне керування виведенням" .TP \fB\-c\fP, \fB\-\^\-count\fP Пригнічує звичайний вивід; замість цього виводить кількість відповідних рядків для кожного файлу вводу. За допомогою параметра \fB\-v\fP, \fB\-\^\-invert\-match\fP (див. вище), виводить число рядків, які не збігаються. .TP \fB\-\^\-color\fP[\fB=\fP\fIКОЛИ\fP], \fB\-\^\-colour\fP[\fB=\fP\fIКОЛИ\fP] Оточує відповідні (непорожні) рядки, відповідні рядки, контекстні рядки, імена файлів, номери рядків, зміщення байтів і роздільники (для полів і груп контекстних рядків) escape\-послідовністю, щоб відобразити їх у кольорі в терміналі. Кольори визначаються змінною середовища \fBGREP_COLORS\fP. \fIКОЛИ\fP – це \fBніколи\fP, \fBзавжди\fP або \fBauto\fP. .TP \fB\-L\fP, \fB\-\^\-files\-without\-match\fP Пригнічує звичайний вивід, натомість виводить назви файлів в яких збігів не відбулося. Пошук всередині кожного файлу припиняється після першого збігу. .TP \fB\-l\fP, \fB\-\^\-files\-with\-matches\fP Пригнічує звичайний вивід; натомість виводить назви файлів, що містять збіги. Пошук всередині кожного файлу припиняється після першого збігу. .TP \fB\-m\fP\fIЧИСЛО\fP,\fB \-\^\-max\-count=\fP\fIЧИСЛО\fP Пошук у файлі припиняється після вказаного \fIЧИСЛА\fP рядків, які збіглися. Якщо \fIЧИСЛО\fP є нулем, \fBgrep\fP припиняє обробку без читання вхідних даних. Значення \fIЧИСЛО\fP, яке рівне \-1, означає нескінченність і \fBgrep\fP не зупиняється; це типове значення. Якщо ввід відбувається зі звичайного файлу, grep зупинить пошук одразу ж на наступному рядку після останнього рядка, який збігається і припинить роботу. Це дозволяє поновити процес пошуку з місця зупинки. Коли \fBgrep\fP зупиняється після вказаного \fIЧИСЛА\fP відповідних рядків, він виводить будь\-який наступний рядок. Якщо додатково використовується параметр \fB\-c\fP або \fB\-\^\-count\fP, \fBgrep\fP не виводить кількість більшу, ніж \fIЧИСЛО\fP. Коли додатково вживається параметр \fB\-v\fP або \fB\-\^\-invert\-match\fP, \fBgrep\fP зупиняється після виведення \fIЧИСЛА\fP невідповідних рядків. .TP \fB\-o\fP, \fB\-\^\-only\-matching\fP Виводить лише узгоджені (непорожні) частини відповідного рядка, причому кожний збіг виводиться в окремий рядок. .TP \fB\-q\fP, \fB\-\^\-quiet\fP, \fB\-\^\-silent\fP Мовчазний вивід; не виводить нічого в звичайному випадку. Негайно припиняє роботу із нульовим статусом, якщо знайдено будь\-який збіг, навіть якщо була виявлена помилка. Також дивіться параметр \fB\-s\fP або \fB\-\^\-no\-messages\fP. .TP \fB\-s\fP, \fB\-\^\-no\-messages\fP Пригнічуються повідомлення про помилки щодо неіснуючих або недоступних файлів. .SS "Управління Префіксом Вихідного Рядка" .TP \fB\-b\fP, \fB\-\^\-byte\-offset\fP Ставить перед кожним рядком номер блоку, в якому він був знайдений, починаючи з 0. Якщо додатково вказати \fB\-o\fP (\fB\-\^\-only\-matching\fP), виводить номер блоку найбільш відповідної частини. .TP \fB\-H\fP, \fB\-\^\-with\-filename\fP Виводить назву файлу для кожного збігу. Це типове значення, якщо пошук виконують у декількох файлах. Це розширення GNU. .TP \fB\-h\fP, \fB\-\^\-no\-filename\fP Пригнічує показ імен файлів у виводі. Це типове значення, якщо пошук проводиться лише в одному файлі (або стандартний ввід). .TP \fB\-\^\-label=\fP\fIНАЗВА\fP Вказує ніби ввід надходить з файла з назвою \fIНАЗВА\fP. Це може бути корисно для команд, які перетворюють вміст файлу перед пошуком, наприклад, \fBgzip \-cd foo.gz | grep \-\^\-label=foo \-H 'ЗРАЗОК'\fP. Дивіться також параметр \fB\-H\fP. .TP \fB\-n\fP, \fB\-\^\-line\-number\fP Виводить перед кожним рядком його номер у файлі (нумерація починається з 1). .TP \fB\-T\fP, \fB\-\^\-initial\-tab\fP Перевіряє, що перший символ фактичного вмісту рядка лежить на табуляції, щоб вирівнювання табуляторів виглядало нормально. Це корисно робити разом з параметрами, які передбачають вивід до фактичного вмісту: \fB\-H\fP, \fB\-n\fP і \fB\-b\fP. Щоб підвищити ймовірність того, що всі рядки з одного файлу будуть починатися з одного стовпця, також друкується номер рядка та зміщення блоків (якщо воно є) у мінімальній ширині розміру поля. .TP \fB\-Z\fP, \fB\-\^\-null\fP Виведіть нульовий байт (символ ASCII \fBNUL\fP) замість символу, який зазвичай слідує після імені файлу. Наприклад, \fBgrep \-lZ\fP виводить нульовий байт після кожного імені файлу замість звичайного нового рядка. Ця опція забезпечує однозначний вивід, навіть у випадку назв файлів що містять незвичні знаки, такі як знак нового рядка. Ця опція може використовуватись разом з такими командами як \fBfind \-print0\fP, \fBperl \-0\fP, \fBsort \-z\fP та \fBxargs \-0\fP для обробки довільних назв файлів. .SS "Контроль контексту рядка" .TP \fB\-A\fP\fIЧИСЛО\fP,\fB \-\^\-after\-context=\fP\fIЧИСЛО\fP Виводить \fIЧИСЛО\fP рядків кінцевого контексту після відповідних рядків. Розміщує рядок із роздільником груп (\fB\-\^\-\fP) між безперервними групами збігів. З опцією \fB\-o\fP або \fB\-\^\-only\-matching\fP команда, про що виводиться попередження. .TP \fB\-B\fP\fIЧИСЛО\fP,\fB \-\^\-before\-context=\fP\fIЧИСЛО\fP Виводить \fIЧИСЛО\fP рядків початкового контексту перед відповідними рядками. Розміщує рядок із роздільником груп (\fB\-\^\-\fP) між безперервними групами збігів. З опцією \fB\-o\fP або \fB\-\^\-only\-matching\fP команда не працює, про що виводиться попередження. .TP \fB\-C\fP\fIЧИСЛО\fP,\fB \-\fP\fIЧИСЛО\fP,\fB \-\^\-context=\fP\fIЧИСЛО\fP Виводить \fIЧИСЛО\fP рядків вихідного контексту. Розміщує рядок із роздільником груп (\fB\-\^\-\fP) між безперервними групами збігів. З опцією \fB\-o\fP або \fB\-\^\-only\-matching\fP команда не працює, про що виводиться попередження. .TP \fB\-\^\-group\-separator=\fP\fIРОЗДІЛЬНИК\fP Коли використовуються опції \fB\-A\fP, \fB\-B\fP або \fB\-C\fP, друкуйте \fIРОЗДІЛЬНИК\fP замість \fB\-\^\-\fP між групами рядків. .TP \fB\-\^\-no\-group\-separator\fP Коли використовуються опції \fB\-A\fP, \fB\-B\fP або \fB\-C\fP, не друкуйте роздільник між групами рядків. .SS "Вибір файлів і каталогів" .TP \fB\-a\fP, \fB\-\^\-text\fP Двійковий файл обробляється так, ніби це текст; це еквівалентно параметру \fB\-\^\-binary\-files=text\fP. .TP \fB\-\^\-binary\-files=\fP\fIТИП\fP Якщо дані або метадані файлу вказують, що цей файл містить двійкові дані, припускається що файл має тип \fIТИП\fP. Нетекстові байти вказують на двійкові дані; це або вихідні байти, які неправильно закодовані для поточної локалі, або нульові вхідні байти, якщо параметр \fB\-z\fP не заданий. .IP Стандартним значенням \fIТИП\fP є \fBbinary\fP, а \fBgrep\fP придушує виведення після виявлення нульових вхідних двійкових даних і пригнічує вихідні рядки, які містять неправильно закодовані дані. Коли виведення деяких даних придушено, \fBgrep\fP спрямовує будь\-які виведені дані з повідомленням до стандартного виведення помилок про те, що цей файл є двійковим "binary file matches". .IP Якщо \fIТИП\fP є \fBwithout\-match\fP, коли \fBgrep\fP виявляє нульові вхідні двійкові дані, вважатиметься що жодний файл не є двійковим, це відповідає опції \fB\-I\fP.. .IP Якщо \fIТИП\fP є \fBtext\fP, \fBgrep\fP обробляє двійковий файл так, ніби це текст; це еквівалентно параметру \fB\-a\fP. .IP Коли \fIтип\fP є \fBbinary\fP, \fBgrep\fP може розглядати нетекстові блоки як команди терміналу навіть без параметра \fB\-z\fP. Це означає, що вибір \fBbinary\fP замість \fBtext\fP може вплинути на те, чи відповідає шаблон файлу. Наприклад, коли \fIтип\fP є \fBbinary\fP, зразок \fBq$ might\fP відповідатиме \fBq\fP, за яким одразу слідує нульовий байт, навіть якщо він не збігається, коли \fIтип\fP є \fBtext\fP. .IP \fIПопередження:\fP Опція \fB\-a\fP може виводити двійкове сміття, що може мати неприємні побічні ефекти, якщо результат виводиться у термінал і движок терміналу інтерпретує це як команди. З іншого боку, під час читання файлів, кодування тексту яких невідомі, може бути корисним використовувати \fB\-a\fP або встановити у середовищі \fBLC_ALL='C'\fP, щоб знайти більше збігів, навіть якщо збіги небезпечні для прямого показу. .TP \fB\-D\fP\fI ДІЯ\fP,\fB \-\^\-devices=\fP\fIДІЯ\fP Якщо вхідний файл є пристроєм, FIFO або сокетом, використовуйте \fIДІЯ\fP для обробки вводу. Типово, \fIДІЯ\fP має значення \fBread\fP, це означає, що пристрої читаються так само, ніби звичайні файли. Якщо \fIДІЯ\fP має значення \fBskip\fP, пристрої ігноруються. .TP \fB\-d\fP\fI ДІЯ\fP,\fB \-\^\-directories=\fP\fIДІЯ\fP Якщо вхідний файл є каталогом, використовуйте для його обробки \fIДІЯ\fP. Типовим значенням \fIДІЯ\fP є \fBread\fP, тобто читати каталоги так, як якщо б вони були звичайними файлами. Якщо \fIДІЯ\fP є \fBskip\fP, каталоги пропускаються "мовчки". Якщо \fIДІЯ\fP є \fBrecurse\fP, всі файли в кожному каталозі читаються рекурсивно, з переходом за символічними посиланнями, лише якщо вони знаходяться в командному рядку. Це подібно параметру \fB\-r\fP. .TP \fB\-\^\-exclude=\fP\fIШАБЛОН ПОШУКУ\fP Пропускає будь\-який файл командного рядка із суфіксом імені, який відповідає шаблону \fIШАБЛОН ПОШУКУ\fP, використовуючи підстановку; суфікс назви – це або ціла назва, або частина в кінці, яка починається з символу без косої риски відразу після косої риски (\fB/\fP) у назві. Під час рекурсивного пошуку пропускається будь\-який файл, базова назва якого відповідає \fIШАБЛОН ПОШУКУ\fP; базова назва — частина після останньої косої риски. Зразок може використовувати \fB*\fP, \fB?\fP і \fB[\fP.\|.\|.\fB]\&\fP як символи підстановки та \fB\e\fP для буквального цитування символу підстановки або зворотної косої риски. .TP \fB\-\^\-exclude\-from=\fP\fIФАЙЛ\fP Пропускаються файли, базова назва яких збігається з будь\-яким із назв файлів, зчитаних з \fIФАЙЛ\fP (з використанням зіставлення підстановки, як описано в розділі \fB\-\^\-exclude\fP). .TP \fB\-\^\-exclude\-dir=\fP\fIШАБЛОН ПОШУКУ\fP Пропускається будь\-який каталог командного рядка із суфіксом імені, який відповідає шаблону \fIШАБЛОН ПОШУКУ\fP. Під час рекурсивного пошуку пропускається будь\-який підкаталог, базова назва якого відповідає \fIШАБЛОН ПОШУКУ\fP. Будь\-які зайві кінцеві косі риски в \fIШАБЛОН ПОШУКУ\fP ігноруються. .TP \fB\-I\fP Двійковий файл обробляється так, ніби він не містить відповідних даних; це еквівалентно параметру \fB\-\^\-binary\-files=without\-match\fP. .TP \fB\-\^\-include=\fP\fIШАБЛОН ПОШУКУ\fP Шукаються лише файли, базова назва яких відповідає \fIШАБЛОН ПОШУКУ\fP (використовуючи відповідність підстановки, як описано в розділі \fB\-\^\-exclude\fP). .TP \fB\-r\fP, \fB\-\^\-recursive\fP Всі файли в кожному каталозі читаються рекурсивно, з переходами за символічними посиланнями, лише якщо вони знаходяться в командному рядку. Зверніть увагу, що якщо не вказано операнд файлу, \fBgrep\fP шукає лише у робочому каталозі. Це еквівалентно параметру \fB\-d recurse\fP. .TP \fB\-R\fP, \fB\-\^\-dereference\-recursive\fP Рекурсивно читаються всі файли в кожному каталозі. Перехід за всіма символічними посиланнями робиться, на відміну від \fB\-r\fP. .SS "Інші параметри" .TP \fB\-\^\-line\-buffered\fP Використовується буферизація рядків на виводі. Це може призвести до зниження продуктивності. .TP \fB\-U\fP, \fB\-\^\-binary\fP Файл(и) розглядається як двійковий. Типово, у системах MS\-DOS та MS\-Windows, \fBgrep\fP вгадує, чи є файл текстовим чи двійковим, за описом у параметрі \fB\-\^\-binary\-files\fP. Якщо \fBgrep\fP вирішить, що файл є текстовим, він видаляє CR знаки з оригінального файлу (щоб регулярні вирази з \fB^\fP і \fB$\fP працювали правильно). Вказання \fB\-U\fP скасовує вгадування, зумовлюючи прочитання всіх файлів і буквальну передачу їх механізму порівнювання; якщо це був текстовий із CR/LF парою наприкінці кожного рядка, це може призвести до розбіжності з деякими зразками. Цей параметр не впливає на інші платформи, крім MS\-DOS і MS\-Windows. .TP \fB\-z\fP, \fB\-\^\-null\-data\fP Ввідні та вихідні дані розглядаються як послідовності рядків, кожен з яких закінчується нульовим байтом (символом ASCII NUL) замість знака нового рядка. Так само як \fB\-Z\fP або \fB\-\^\-null\fP, цю опцію можна використовувати з такими командами, як \fBsort \-z\fP для обробки довільних назв файлів. . .SH "РЕГУЛЯРНІ ВИРАЗИ" Регулярний вираз — це зразок, що описує набір текстових рядків. Регулярні вирази будуються аналогічно арифметичним, з використанням різних операторів для комбінації менших виразів. .PP \fBgrep\fP розуміє три різні версії синтаксису регулярних виразів: \*(lqbasic\*(rq (BRE), \*(lqextended\*(rq (ERE) та \*(lqperl\*(rq (PCRE) (базовий, розширений та perl). У GNU \fBgrep\fP базові і розширені формальні вирази є лише різними позначеннями для тих самих функціональних можливостей зі встановлення відповідності. В інших реалізаціях базові регулярні вирази менш потужні. Наступний опис стосується розширених формальних виразів; після чого підсумовуються відмінності для базових формальних виразів. Формальні вирази, сумісні з Perl, мають інші функціональні можливості і задокументовані у підручниках з \fBpcre2syntax\fP(3) і \fBpcre2pattern\fP(3), але працюють лише за умови ввімкненої підтримки PCRE. .PP Основними складовими частинами є регулярні вирази, які відповідають одному символу. Більшість символів, включаючи всі літери та цифри, є регулярними виразами, які відповідають самі собі. Будь\-який знак із спеціальним значенням може бути екрановано, якщо поставити перед ним обернений слеш. .PP Крапка \fB.\&\fP відповідає будь\-якому окремому символу. Не вказується, чи відповідає він помилці кодування. .SS "Класи Символів та Вирази в Дужках" \fIвираз у дужках\fP — це список символів, укладених між \fB[\fP та \fB]\fP. Це відповідає будь\-якому окремому символу з цьому списку. Якщо першим символом списку є каретка \fB^\fP, то він відповідає будь\-якому символу якого \fIнемає\fP у списку; чи він відповідає помилці кодуванні. Наприклад, регулярний вираз \fB[0123456789]\fP відповідає будь\-якій одній цифрі. .PP Вираз в дужках \fIдіапазон виразу\fP складається з двох символів, розділених дефісом. Він відповідає будь\-якому окремому символу, який знаходиться між двома символами включно із цими символами, використовуючи послідовності відносно до локалі та набору символів. Наприклад, у стандартній локалі C, типово, \fB[a\-d]\fP еквівалентно \fB[abcd]\fP. Є багато мовних локалей, які сортують символи в порядку словника, і в цих мовах \fB[a\-d]\fP зазвичай не еквівалентне \fB[abcd]\fP; це може бути еквівалентним, наприклад, \fB[aBbCcDd]\fP. Щоб отримати традиційну інтерпретацію виразів у квадратних дужках, можна використовувати локаль C, встановивши для змінної середовища \fBLC_ALL\fP значення \fBC\fP. .PP Нарешті, певні іменовані класи символів попередньо визначені у виразах у дужках, як показано нижче. Їхні назви зрозумілі самі собою: \fB[:alnum:]\fP, \fB[:alpha:]\fP, \fB[:blank:]\fP, \fB[:cntrl:]\fP, \fB[:digit :]\fP, \fB[:graph:]\fP, \fB[:lower:]\fP, \fB[:print:]\fP, \fB[:punct:]\fP, \fB[:space:]\fP, \fB[:upper:]\fP і \fB[:xdigit:]\fP. Наприклад, \fB[[:alnum:]]\fP означає клас символів цифр та букв у поточній мові. У кодуванні мови C та набору символів ASCII це те саме, що \fB[0\-9A\-Za\-z]\fP. (Зверніть увагу, що дужки в назвах класів є частиною символічних імен і повинні бути включені на додаток до дужок, що розмежовують вирази у дужках.) Більшість спеціальних знаків втрачають своє особливе значення всередині виразів у дужках. Щоб включити символ \fB]\fP, розмістіть його першим у списку. Аналогічно, щоб включити символ \fB^\fP, розмістіть його спочатку списку. Нарешті, щоб включити символ \fB\-\fP, поставте його останнім. .SS Прив'язування Каретка \fB^\fP та знак долара \fB$\fP є спеціальними символами, які позначають у порожньому рядку початок і кінець рядка відповідно. .SS "Символ Зворотнього Слешу та Спеціальні Вирази" Символи \fB\e<\fP і \fB\e>\fP відповідно відповідають порожньому рядку на початку і в кінці слова. Символ \fB\eb\fP відповідає порожньому рядку на краю слова, а \fB\eB\fP відповідає порожньому рядку за умови, що це \fIНЕ\fP на краю слова. Символ \fB\ew\fP є синонімом \fB[_[:alnum:]]\fP, а \fB\eW\fP є синонімом \fB[^_[:alnum:]]\fP. .SS Повторення За регулярним виразом може слідувати один з кількох операторів повторення: .PD 0 .TP \fB?\fP Попередній елемент є необов'язковим і збігається не більше одного разу. .TP \fB*\fP Попередній елемент буде збігатися нуль або більше разів. .TP \fB+\fP Попередній елемент буде збігатися один або кілька разів. .TP \fB{\fP\fIn\fP\fB}\fP Попередній елемент збігається точно \fIn\fP разів. .TP \fB{\fP\fIn\fP\fB,}\fP Попередній елемент збігається \fIn\fP або більше разів. .TP \fB{,\fP\fIm\fP\fB}\fP Попередній елемент збігається не більше \fIm\fP разів. Це розширення GNU. .TP \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP Попередній елемент збігається щонайменше \fIn\fP разів, але не більше \fIm\fP разів. .PD .SS Ланцюжок Два регулярних вирази можуть бути об'єднані; отриманий регулярний вираз відповідає будь\-якому рядку, утвореному шляхом зчеплення двох підрядків, які відповідно збігаються об'єднаним виразам. .SS Черговість Два регулярні вирази можуть бути об'єднані за допомогою оператора \fB|\fP; отриманий регулярний вираз відповідає будь\-якому рядку, що відповідає будь\-якому альтернативному виразу. .SS Пріоритетність Повторення має перевагу над ланцюжком, який, у свою чергу, має перевагу над черговістю. Щоб замінити ці правила пріоритету та сформувати підвираз, цілий вираз може бути узятий у дужки. .SS "Зворотні посилання та підвирази" The back\-reference \fB\e\fP\fIn\fP \&, where \fIn\fP is a single digit, matches the substring previously matched by the \fIn\fPth parenthesized subexpression of the regular expression. .SS "Базові з Розширеними регулярні вирази" У базових регулярних виразах метасимволи \fB?\fP, \fB+\fP, \fB{\fP, \fB|\fP, \fB(\fP і \fB)\fP втрачають своє особливе значення; замість цього використовуйте версії \fB\e?\fP, \fB\e+\fP, \fB\e{\fP, \fB\e|\fP, \fB\e(\fP і \fB\e)\fP. . .SH "СТАН ВИХОДУ" Зазвичай статус виходу дорівнює 0, якщо вибрано рядок, 1, якщо рядки не вибрано, і 2, якщо сталася помилка. Однак якщо використовується \fB\-q\fP або \fB\-\^\-quiet\fP або \fB\-\^\-silent\fP і вибрано рядок, статус виходу дорівнює 0, навіть якщо сталася помилка. . .SH СЕРЕДОВИЩЕ На поведінку \fBgrep\fP впливають наступні змінні середовища. .PP Локаль для категорії \fBLC_\fP\fIfoo\fP визначається шляхом вивчення трьох змінних середовища \fBLC_ALL\fP, \fBLC_\fP\fIfoo\fP, \fBLANG\fP саме в такому порядку. Перша з цих змінних, яка встановлюється, визначає локаль. Наприклад, якщо \fBLC_ALL\fP не встановлено, але \fBLC_MESSAGES\fP встановлено на \fBpt_BR\fP, тоді для категорії \fBLC_MESSAGES\fP використовується бразильська португальська мова. Локаль C використовується, якщо жодна з цих змінних середовища не встановлена, якщо каталог мовних стандартів не встановлено, або якщо \fBgrep\fP не було скомпільовано з підтримкою національної мови (NLS). Команда оболонки \fBlocale \-a\fP перелічує доступні на даний момент локалі. .TP \fBGREP_COLORS\fP Керує тим, як параметр \fB\-\^\-color\fP підсвічує виведені дані. Його значення — це список можливостей, розділений двокрапкою, який типово має значення \fBms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36\fP з логічні можливості \fBrv\fP і \fBne\fP пропущені (тобто false). Підтримувані можливості наступні. .RS .TP \fBsl=\fP Підрядок SGR для цілих виділених рядків (тобто рядки, що збігаються, коли параметр командного рядка \fB\-v\fP опущено, або невідповідні рядки, коли вказано \fB\-v\fP). Проте, якщо вказано логічну можливість \fBrv\fP і параметр командного рядка \fB\-v\fP, це застосовується натомість до рядків відповідності контексту. .TP \fBcx=\fP Підрядок SGR для цілих рядків контексту (тобто невідповідні рядки, коли параметр командного рядка \fB\-v\fP опущено, або відповідні рядки, коли вказано \fB\-v\fP). Проте, якщо вказано логічну можливість \fBrv\fP і параметр командного рядка \fB\-v\fP, вона застосовується замість цього до вибраних невідповідних рядків. Типово порожній (тобто типова пара кольорів термінала). .TP \fBrv\fP Логічне значення, яке змінює (міняє місцями) значення можливостей \fBsl=\fP і \fBcx=\fP, коли вказано параметр командного рядка \fB\-v\fP. Типово — false (тобто можливість пропущена). .TP \fBmt=01;31\fP Підрядок SGR для збігу непорожнього тексту в будь\-якому відповідному рядку (тобто виділений рядок, коли параметр командного рядка \fB\-v\fP опущено, або контекстний рядок, коли вказано \fB\-v\fP). Це налаштування еквівалентно одночасному встановленню одного значення для \fBms=\fP і \fBmc=\fP. Типово — напівжирний червоний текст на поточному фоні рядка. .TP \fBms=01;31\fP Підрядок SGR для збігу непорожнього тексту у виділеному рядку. (Використовується лише тоді, коли параметр командного рядка \fB\-v\fP опущено.) Ефект від можливості \fBsl=\fP (або \fBcx=\fP, якщо \fBrv\fP) залишається активним, коли команда повторюється. Типово — напівжирний червоний текст на поточному фоні рядка. .TP \fBmc=01;31\fP Підрядок SGR для збігу непорожнього тексту в контекстному рядку. (Використовується лише тоді, коли вказано параметр командного рядка \fB\-v\fP.) Ефект від можливості \fBcx=\fP (або \fBsl=\fP, якщо \fBrv\fP) залишається активним, коли команда. Типово — напівжирний червоний текст на поточному фоні рядка. .TP \fBfn=35\fP Підрядок SGR для назв файлів із префіксом рядка будь\-якого вмісту. Типово, текст пурпурового кольору на фоні термінала. .TP \fBln=32\fP Підрядок SGR для номерів рядків із префіксом рядка будь\-якого вмісту. Типово, текст зеленого кольору на фоні типового термінала. .TP \fBbn=32\fP Підрядок SGR для байтових зміщень із префіксом рядка будь\-якого вмісту. Типово, текст зеленого кольору на фоні типового термінала. .TP \fBse=36\fP Підрядок SGR для роздільників, які вставляють між вибраними полями рядка (\fB:\fP), між полями рядка контексту, (\fB\-\fP) та між групами суміжних рядків, коли вказано ненульовий контекст (\fB\-\^\-\fP) . Типово блакитний текст на фоні типового термінала. .TP \fBne\fP Логічне значення, яке запобігає очищенню до кінця рядка за допомогою Стерти в рядку (EL) Направо (\fB\e33[K\fP) щоразу, коли закінчується розфарбований елемент. Це потрібно на терміналах, на яких EL не підтримується. Інакше кажучи це корисно на терміналах, для яких не застосовується логічна функція terminfo \fBback_color_erase\fP (\fBbce\fP), коли вибрані кольори виділення не впливають на фон, або коли EL надто повільний або викликає занадто сильне мерехтіння. Типово значення false (тобто можливість пропущена). .PP Зауважте, що логічні можливості не мають частини \fB=\fP.\|.\|.\&. Їх типово буде пропущено (тобто false), вони стають істинними, коли це вказано. .PP Дивіться розділ Select Graphic Rendition (SGR) у документації текстового терміналу, який використовується для дозволених значень та їх значення як атрибутів символів. Ці значення підрядка є цілими числами в десятковому представленні і можуть бути об'єднані крапкою з комою. \fBgrep\fP забезпечує збірку результату в повну послідовність SGR (\fB\e33[\fP.\|.\|.\fBm\fP). Загальні значення для об'єднання включають \fB1\fP для напівжирного, \fB4\fP для підкреслення, \fB5\fP для миготіння, \fB7\fP для інвертованого, \fB39\fP для типового кольору тексту, \fB30\fP до \fB37 \fP для кольорів тексту, \fB90\fP до \fB97\fP для 16\-кольорового режиму кольорів тексту, \fB38;5;0\fP до \fB38;5;255\fP для кольорів тексту з 88 та 256 кольорів , \fB49\fP для типового кольору фону, \fB40\fP до \fB47\fP для кольорів фону, \fB100\fP до \fB107\fP для 16\-кольорового режиму кольорів фону та \fB48;5;0\fP до \fB48;5;255\fP для кольорів фону у режимах 88 та 256 кольорів. .RE .TP \fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP Ці змінні визначають локаль для категорії \fBLC_COLLATE\fP, яка визначає послідовність символів, яка використовується для інтерпретації виразів діапазону, наприклад \fB[a\-z]\fP. .TP \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP Ці змінні визначають локаль для категорії \fBLC_CTYPE\fP, яка визначає тип символів, наприклад, які символи є пробілами. Ця категорія також визначає кодування символів, тобто кодування тексту в UTF\-8, ASCII чи іншому кодуванні. У мовному стандарті C або POSIX всі символи кодуються як один байт, і кожен байт є дійсним символом. .TP \fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP Ці змінні визначають локаль для категорії \fBLC_MESSAGES\fP, яка визначає мову, що \fBgrep\fP використовується для повідомлень. У типовій локалі C використано повідомлення американською англійською мовою. .TP \fBPOSIXLY_CORRECT\fP Якщо це встановлено, \fBgrep\fP поводить себе так, як вимагає POSIX; інакше \fBgrep\fP поводить себе більше як інші програми GNU. POSIX вимагає, щоб параметри, які йдуть за іменами файлів, розглядалися як імена файлів; типово, такі параметри переміщуються на початку списку операндів і розглядаються як параметри. Крім того, POSIX вимагає, щоб нерозпізнані параметри були діагностовані як "незаконні", але оскільки вони насправді не суперечать правилам, типово їх діагностують як "недійсні". . .SH ПРИМІТКИ Ця довідкова сторінка підтримується лише періодично; повна документація часто є більш актуальною. . .SH "АВТОРСЬКІ ПРАВА" Авторські права належать 1998\-2000, 2002, 2005\-2023 Free Software Foundation, Inc. .PP Це безкоштовне програмне забезпечення; дивіться джерело для умов копіювання. НЕМАЄ гарантії; навіть не для ПРОДАЖУ чи ПРИДАТНОСТІ ДЛЯ КОНКРЕТНОЇ МЕТИ. . .SH ВАДИ .SS "Повідомлення про помилки" Надсилайте повідомлення про помилки електронною поштою на адресу .MT bug\-grep@gnu.org на адресу повідомлення про помилки .ME . An .UR https://lists.gnu.org/mailman/listinfo/bug\-grep Доступні архів електронної пошти .UE і .UR https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep засіб відстеження помилок .UE . .SS "Відомі Помилки" Велика кількість повторень у конструкції \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP може призвести до того, що \fBgrep\fP використовує багато пам'яті. Крім того, деякі інші незрозумілі регулярні вирази вимагають експоненційного часу та простору, і можуть призвести до того, що для \fBgrep\fP не вистачить пам'яті. .PP Зворотні посилання дуже повільні і можуть вимагати експоненційного часу. . .SH ПРИКЛАДИ У наступному прикладі виводиться розташування та вміст будь\-якого рядка, що містить \*(lqf\*(rq і закінчується на \*(lq.c\*(rq, у всіх файлах у поточному каталозі, імена яких містять \*(lqg\*(rq та закінчуються на \*(lq.h' '. Параметр \fB\-n\fP виводить номери рядків, аргумент \fB\-\-\fP розглядає розширення \*(lq*g*.h\*(rq, починаючи з \*(lq\-\*(rq як імена файлів, а не параметри, і порожній файл /dev/null призводить до виведення імен файлів, навіть якщо тільки одне ім'я файлу має вигляд \*(lq*g*.h\*(rq. .PP .in +2n .EX $ \fBgrep\fP \-n \-\- 'f.*\e.c$' *g*.h /dev/null argmatch.h:1:/* definitions and prototypes for argmatch.c .EE .in .PP Єдиний рядок, який збігається, це рядок 1 argmatch.h. Зауважте, що синтаксис регулярного виразу, використаний у шаблоні, відрізняється від глобального синтаксису, який використовує оболонка для відповідності імен файлів. . .SH "ДИВ. ТАКОЖ" .SS "Наступні сторінки посібника" \fBawk\fP(1), \fBcmp\fP(1), \fBdiff\fP(1), \fBfind\fP(1), \fBperl\fP(1), \fBsed\fP(1), \fBsort\fP(1), \fBxargs\fP(1), \fBread\fP(2), \fBpcre2\fP(3), \fBpcre2syntax\fP(3), \fBpcre2pattern\fP(3), \fBterminfo\fP(5), \fBglob\fP(7), \fBregex\fP(7) .SS "Повна документація" Доступний повний посібник .UR https://www.gnu.org/software/grep/manual/ .UE . Якщо програми \fBinfo\fP і \fBgrep\fP правильно встановлені на вашому сайті, команда .IP \fBinfo grep\fP .PP ви зможете отримати доступ до повноцінного підручника. . .\" Work around problems with some troff -man implementations. .br . .\" Format for Emacs-maintained Dt string defined at this file's start. .\" Local variables: .\" time-stamp-format: "%:y-%02m-%02d" .\" End: .PP .SH ПЕРЕКЛАД Український переклад цієї сторінки посібника виконано Olex Denkin і Yuri Chornoivan . .PP Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE . НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ. .PP Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: .MT trans-uk@lists.fedoraproject.org .ME .