.\" -*- 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" "Polecenia użytkownika" . .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 NAZWA grep, egrep, fgrep, rgrep \- wypisuje wiersze pasujące do wzorca . .SH SKŁADNIA \fBgrep\fP [\fIOPCJA\fP.\|.\|.]\& \fIWZORCE\fP [\fIPLIK\fP.\|.\|.] .br \fBgrep\fP [\fIOPCJA\fP.\|.\|.]\& \fB\-e\fP \fIWZORCE\fP \&.\|.\|.\& [\fIPLIK\fP.\|.\|.] .br \fBgrep\fP [\fIOPCJA\fP.\|.\|.]\& \fB\-f\fP \fIPLIK_WZORCOWY\fP \&.\|.\|.\& [\fIPLIK\fP.\|.\|.] . .SH OPIS \fBgrep\fP szuka \fIWZORCÓW\fP w każdym \fIPLIKU\fP. Wzorców może być więcej niż jeden, należy je wówczas rozdzielić znakiem nowego wiersza, przy czym \fBgrep\fP wypisze każdy wiersz pasujący do któregoś z wzorców. \fIWZORCE\fP powinny być zwykle cytowane, jeśli \fBgrep\fP jest używany jako polecenie powłoki. .PP \fIPLIK\fP \fB\-\fP oznacza standardowe wejście. Jeśli nie podano \fIPLIKU\fP, rekurencyjne wyszukiwania sprawdzą obecny katalog roboczy, a nierekurencyjne \- czytają ze standardowego wejścia. .PP Debian dostarcza dodatkowo programy wariantowe \fBegrep\fP, \fBfgrep\fP i \fBrgrep\fP. Programy te są zupełnie tym samym, co \fBgrep\ \-E\fP, \fBgrep\ \-F\fP, and \fBgrep\ \-r\fP. Te warianty są uważane za przestarzałe przez dostawcę, ale Debian zapewnia jest w celu zachowania kompatybilności wstecznej. Ze względu na przenośność, zaleca się unikać programów wariantowych i używać w zamian \fBgrep\fP z odpowiednimi opcjami. . .SH OPCJE .SS "Standardowe informacje programu" .TP \fB\-\^\-help\fP Wyświetla komunikat pomocy i wychodzi. .TP \fB\-V\fP, \fB\-\^\-version\fP Wyświetla numer wersji \fBgrep\fP i wychodzi. .SS "Składnia wzorca" .TP \fB\-E\fP, \fB\-\^\-extended\-regexp\fP Interpretuje \fIWZORCE\fP jako rozszerzone wyrażenie regularne (ERE, patrz niżej). .TP \fB\-F\fP, \fB\-\^\-fixed\-strings\fP Interpretuje \fIWZORCE\fP jako literalne ciągi znaków, a nie jako wyrażenia regularne. .TP \fB\-G\fP, \fB\-\^\-basic\-regexp\fP Interpretuje \fIWZORCE\fP jako podstawowe wyrażenie regularne (BRE, patrz niżej). Jest to zachowanie domyślne. .TP \fB\-P\fP, \fB\-\^\-perl\-regexp\fP Interpretuje \fIWZORCE\fP jako wyrażenie regularne kompatybilne z Perlem (PCRE). Jest to opcja wysoce eksperymentalna, połączenie z opcjami \fB\-z\fP (\fB\-\^\-null\-data\fP) oraz \fBgrep \-P\fP może ostrzegać o jeszcze niewdrożonych funkcjach. .SS "Kontrola dopasowania" .TP \fB\-e\fP \fIWZORCE\fP,\fB \-\^\-regexp=\fP\fIWZORCE\fP Używa \fIWZORCE\fP jako wzorca. Jeżeli ta opcja została użyta wielokrotnie lub jest połączona z opcją \fB\-f\fP (\fB\-\^\-file\fP), szuka wszystkich podanych wzorców. Ta opcja może być użyta do ochrony wzorców rozpoczynających się znakiem \[Bq]\-\[rq]. .TP \fB\-f\fP\fI PLIK\fP,\fB \-\^\-file=\fP\fIPLIK\fP Pobiera wzorce z \fIPLIKU\fP, po jednym na wiersz. Jeżeli ta opcja została użyta wielokrotnie lub jest połączona z opcją \fB\-e\fP (\fB\-\^\-regexp\fP), szuka wszystkich podanych wzorców. Pusty plik zawiera zero wzorców, więc nie pasuje do niczego. Jeśli \fIPLIKIEM\fP jest \fB\-\fP, odczytuje wzorce ze standardowego wejścia. .TP \fB\-i\fP, \fB\-\^\-ignore\-case\fP Ignoruje różnicę wielkości liter we wzorcach oraz danych wejściowych, tak by znaki, które różnią się tylko wielkością pasowały do siebie. .TP \fB\-\^\-no\-ignore\-case\fP Nie ignoruje różnicy wielkości liter we wzorcach oraz w danych wejściowych. Jest to zachowanie domyślne. Ta opcja jest użyteczna by przekazać skryptowi powłoki, który już używa \fB\-i\fP, by anulował ten efekt ponieważ te dwie opcje się nadpisują. .TP \fB\-v\fP, \fB\-\^\-invert\-match\fP Odwraca sens dopasowania, wybierając wiersze niepasujące. .TP \fB\-w\fP, \fB\-\^\-word\-regexp\fP Wybiera tylko te wiersze, w których dopasowane wzorce tworzą całe słowa. Przeprowadzany test polega na tym, że dopasowany podłańcuch musi albo znajdować się na początku wiersza, albo być poprzedzony znakiem nietworzącym słowa. Podobnie, musi albo znajdować się na końcu wiersza, albo musi następować po nim znak nietworzący słowa. Znakami tworzącymi słowa są litery, cyfry i znak podkreślenia. Ta opcja nie zadziała, jeśli podano również \fB\-x\fP. .TP \fB\-x\fP, \fB\-\^\-line\-regexp\fP Wybiera tylko te dopasowania, które dokładnie pasują do całego wiersza. W przypadku wzoru wyrażenia regularnego, ma to taki sam skutek, jak umieszczenie całego wyrażenia w nawiasach i otoczenie go \fB^\fP oraz \fB$\fP. .SS "Ogólna kontrola wyniku" .TP \fB\-c\fP, \fB\-\^\-count\fP Wyłącza normalne wyjście, zamiast niego, dla każdego pliku wejściowego, wypisuje liczbę pasujących wierszy. Z opcją \fB\-v\fP, \fB\-\^\-invert\-match\fP (patrz wyżej), liczy wiersze niepasujące. .TP \fB\-\^\-color\fP[\fB=\fP\fIKIEDY\fP], \fB\-\^\-colour\fP[\fB=\fP\fIKIEDY\fP] Otacza pasujące (niepuste) łańcuchy, pasujące wiersze, wiersze kontekstu, nazwy plików, numery wierszy, przesunięcie w bajtach oraz separatory (dla pól i grup w wierszach kontekstu) znakami odpowiadającymi za wyświetlanie kolorów w terminalu. Kolory są zdefiniowane przez zmienną środowiskową \fBGREP_COLORS\fP. Parametr \fIKIEDY\fP może przyjmować wartości: \fBnever\fP (nigdy), \fBalways\fP (zawsze) i \fBauto\fP (automatycznie). .TP \fB\-L\fP, \fB\-\^\-files\-without\-match\fP Wyłącza normalne wyjście, zamiast niego wypisuje nazwę każdego pliku, z którego normalnie nie wypisano by żadnego wyniku. .TP \fB\-l\fP, \fB\-\^\-files\-with\-matches\fP Wyłącza normalne wyjście, zamiast niego wypisuje nazwę każdego pliku, z którego normalnie wypisano by wynik. Przeszukiwanie każdego pliku wejściowego kończy się na pierwszym pasującym wyniku. .TP \fB\-m\fP\fI LICZBA\fP,\fB \-\^\-max\-count=\fP\fILICZBA\fP Zatrzymuje odczytywanie pliku po \fILICZBIE\fP pasujących wierszy. Jeśli \fILICZBA\fP wynosi zero, \fBgrep\fP zatrzymuje się od razu, bez odczytywania wejścia. Jeśli \fILICZBA\fP wynosi \-1, jest traktowana jako nieskończoność i \fBgrep\fP się nie zatrzymuje, tak jest domyślnie. Jeśli wejście jest standardowym wejściem ze zwykłego pliku i wypisano \fILICZBĘ\fP pasujących wierszy, to \fBgrep\fP upewnia się przed zakończeniem działania, że standardowe wejście jest ustawione zaraz za ostatnim pasującym wierszem, niezależnie od obecności końcowych wierszy kontekstu. Umożliwia to wywołującemu procesowi wznowienie wyszukiwania. Jeśli \fBgrep\fP zatrzyma się po \fILICZBIE\fP pasujących wierszy, nie wyświetla końcowych wierszy kontekstu. Jeżeli podano także opcję \fB\-c\fP lub \fB\-\^\-count\fP, \fBgrep\fP nie wyświetla liczby większej niż \fILICZBA\fP. Jeśli podano również opcję \fB\-v\fP lub \fB\-\^\-invert\-match\fP, to \fBgrep\fP zatrzymuje wyświetlanie po wypisaniu \fILICZBY\fP niepasujących wierszy. .TP \fB\-o\fP, \fB\-\^\-only\-matching\fP Wyświetla tylko pasujące (niepuste) części pasującego wiersza, każda w osobnym wierszu. .TP \fB\-q\fP, \fB\-\^\-quiet\fP, \fB\-\^\-silent\fP Po cichu, nie wyświetla niczego na standardowe wyjście. Przeszukiwanie zakończy się na pierwszym pasującym wierszu ze statusem zero, nawet jeśli wykryto błąd. Patrz również opcje \fB\-s\fP lub \fB\-\^\-no\-messages\fP. .TP \fB\-s\fP, \fB\-\^\-no\-messages\fP Ignoruje błędy spowodowane przez nieistniejące lub nieczytelne pliki. .SS "Kontrola przedrostków w wierszu wyjścia" .TP \fB\-b\fP, \fB\-\^\-byte\-offset\fP Wypisuje przed każdym wierszem wyjścia jego, liczone od 0, przesunięcie bajtowe w pliku wejściowym. Jeśli użyto opcji \fB\-o\fP (\fB\-\^\-only\-matching\fP), wyświetla przesunięcie samej pasującej części. .TP \fB\-H\fP, \fB\-\^\-with\-filename\fP Wyświetla nazwę pliku dla każdego dopasowania. Jest to domyślne ustawienie, jeśli jest więcej niż jeden plik do przeszukania. Rozszerzenie GNU. .TP \fB\-h\fP, \fB\-\^\-no\-filename\fP Odwołuje poprzedzanie wyjścia nazwami plików. Jest to ustawienie domyślne, jeśli jest tylko jeden plik (lub standardowe wejście) do przeszukania. .TP \fB\-\^\-label=\fP\fIETYKIETA\fP Wyświetla wejście, które w rzeczywistości pochodzi ze standardowego wejścia, jako wejście pochodzące z pliku \fIETYKIETA\fP. Może to być szczególnie przydatne przy komendach, które przekształcają zawartość pliku przed wyszukiwaniem, np. \fBgzip \-cd foo.gz | grep \-\^\-label=foo \-H 'jakiś wzorzec'\fP. Patrz też: opcja \fB\-H\fP. .TP \fB\-n\fP, \fB\-\^\-line\-number\fP Poprzedza każdy wiersz wyjścia, liczonym od 1, numerem wiersza z pliku wejściowego. .TP \fB\-T\fP, \fB\-\^\-initial\-tab\fP Upewnia się, że pierwszy znak wiersza zawartości zależy od tabulacji, dzięki czemu wyrównanie tabulacji wygląda normalnie. Jest to użyteczne z opcjami, które poprzedzają swoje wyjście jakąś zawartością: \fB\-H\fP, \fB\-n\fP i \fB\-b\fP. Aby zwiększyć prawdopodobieństwo, że wiersze z danego pliku będą się zaczynać w tej samej kolumnie, numer wiersza i przesunięcie bajtowe (jeśli są obecne) zostaną wyświetlone z najmniejszą szerokością pola. .TP \fB\-Z\fP, \fB\-\^\-null\fP Zamiast znaku, który normalnie występuje po nazwie pliku, wypisuje bajt zerowy (ASCII \fBNUL\fP). Na przykład, \fBgrep \-lZ\fP wypisuje po nazwie pliku bajt zerowy, zamiast, jak zwykle, znak nowego wiersza. Opcja ta powoduje, że wyjście jest jednoznaczne, nawet przy nazwach plików zawierających niecodzienne znaki, jak znak nowego wiersza. Może być wykorzystywana z poleceniami typu: \fBfind \-print0\fP, \fBperl \-0\fP, \fBsort \-z\fP i \fBxargs \-0\fP, umożliwiając przetwarzanie plików o dowolnych nazwach, nawet zawierających znaki nowego wiersza. .SS "Kontrola wierszy z kontekstem" .TP \fB\-A\fP\fI LICZBA\fP,\fB \-\^\-after\-context=\fP\fILICZBA\fP Wyświetla \fILICZBĘ\fP wierszy z kontekstem, następujących po dopasowanych wierszach. Pomiędzy ciągłymi grupami dopasowań umieszczany jest wiersz zawierający separator grupy (\fB\-\^\-\fP). Nie działa z opcją \fB\-o\fP lub \fB\-\^\-only\-matching\fP, wyświetlane jest wówczas również ostrzeżenie. .TP \fB\-B\fP\fI LICZBA\fP,\fB \-\^\-before\-context=\fP\fILICZBA\fP Wyświetla \fILICZBĘ\fP wierszy z kontekstem, poprzedzających dopasowane wiersze. Pomiędzy ciągłymi grupami dopasowań umieszczany jest wiersz zawierający separator grupy (\fB\-\^\-\fP). Nie działa z opcją \fB\-o\fP lub \fB\-\^\-only\-matching\fP, wyświetlane jest wówczas również ostrzeżenie. .TP \fB\-C\fP\fI LICZBA\fP,\fB \-\fP\fILICZBA\fP,\fB \-\^\-context=\fP\fILICZBA\fP Wyświetla \fILICZBĘ\fP wierszy z kontekstem. Pomiędzy ciągłymi grupami dopasowań umieszczany jest wiersz zawierający separator grupy (\fB\-\^\-\fP). Nie działa z opcją \fB\-o\fP lub \fB\-\^\-only\-matching\fP, wyświetlane jest wówczas również ostrzeżenie. .TP \fB\-\^\-group\-separator=\fP\fISEPARATOR\fP Gdy użyto \fB\-A\fP, \fB\-B\fP, lub \fB\-C\fP wypisuje \fISEPARATOR\fP zamiast \fB\-\^\-\fP pomiędzy grupami wierszy. .TP \fB\-\^\-no\-group\-separator\fP Gdy użyto \fB\-A\fP, \fB\-B\fP, lub \fB\-C\fP nie wypisuje separatora pomiędzy grupami wierszy. .SS "Wybór plików i katalogów" .TP \fB\-a\fP, \fB\-\^\-text\fP Przetwarza plik binarny tak, jakby był on plikiem tekstowym; jest to odpowiednik opcji \fB\-\^\-binary\-files=text\fP. .TP \fB\-\^\-binary\-files=\fP\fITYP\fP Jeżeli dane lub metadane pliku wskazują na to, że zawiera on dane binarne, zakłada, że jest on typu \fITYP\fP. Bajty nietekstowe oznaczają dane binarne; są to albo niepoprawnie zakodowane znaki, albo bajty wejściowe null, kiedy opcja \fB\-z\fP nie została użyta. .IP Domyślnym \fITYPEM\fP jest \fBbinary\fP, a \fBgrep\fP przerywa zwracanie wyników gdy wykryje binarny null w danych wejściowych oraz blokuje na wyjściu linie, które zawierają źle sformatowane dane. Gdy część wyjścia jest zablokowana, \fBgrep\fP kończy każdy wynik wiadomością kierowaną na standardowe wyjście błędów i informującą, że plik binarny pasuje do wzorca. .IP Jeżeli \fITYPEM\fP jest \fBwithout\-match\fP, to kiedy grep wykryje, że wejście zawiera binarny null, zakłada, że reszta pliku nie pasuje. Jest to odpowiednik opcji \fB\-I\fP. .IP Jeżeli \fITYPEM\fP jest \fBtext\fP, to \fBgrep\fP przetwarza plik binarny tak, jakby był on plikiem tekstowym; jest to odpowiednik opcji \fB\-a\fP. .IP Kiedy \fITYP\fP ma wartość \fBbinary\fP, \fBgrep\fP może traktować bajty nietekstowe jako zakończenia wierszy nawet bez opcji \fB\-z\fP. To oznacza, że wybór między \fBbinary\fP a \fBtext\fP może wpływać na to, czy wzorzec pasuje do pliku. Na przykład, kiedy \fITYPEM\fP jest \fBbinary\fP, to wzorzec \fBq$\fP może pasować do \fBq\fP po którym niespodziewanie następuje bajt null, nawet jeśli te wzorce nie zostałaby dopasowane, gdyby \fITYPEM\fP był \fBtext\fP. I odwrotnie, kiedy \fITYPEM\fP jest \fBbinary\fP, wzorzec \fB.\&\fP (kropka) może nie zgadzać się z bajtem null. .IP \fIOstrzeżenie:\fP Opcja \fB\-a\fP może zwrócić binarny śmietnik, co może mieć nieprzyjemne skutki, jeżeli wyjściem jest terminal, a sterownik terminala zinterpretuje to wszystko jako polecenia. Z drugiej jednak strony, czytając pliki, których kodowanie tekstu pozostaje nieznane, przydatne może być użycie \fB\-a\fP lub ustawienie zmiennej \fBLC_ALL='C'\fP w środowisku, aby znaleźć więcej dopasowań, nawet jeśli ich bezpośrednie wyświetlenie byłoby niebezpieczne. .TP \fB\-D\fP\fI DZIAŁANIE\fP,\fB \-\^\-devices=\fP\fIDZIAŁANIE\fP Jeśli plik wejściowy jest urządzeniem, kolejką FIFO lub gniazdem, używa \fIDZIAŁANIA\fP do przetworzenia go. Domyślnym \fIDZIAŁANIEM\fP jest \fBread\fP, co znaczy, że urządzenia są odczytywane dokładnie tak samo, jak gdyby były zwykłymi plikami. Jeśli wartością \fIDZIAŁANIA\fP jest \fBskip\fP, to urządzenia są po cichu pomijane. .TP \fB\-d\fP\fI DZIAŁANIE\fP,\fB \-\^\-directories=\fP\fIDZIAŁANIE\fP Jeśli plik wejściowy jest katalogiem, używa \fIDZIAŁANIA\fP do przetworzenia go. Domyślnym \fIDZIAŁANIEM\fP jest \fBread\fP, tzn. odczytywanie katalogów dokładnie tak samo, jak gdyby były zwykłymi plikami. Jeśli wartością \fIDZIAŁANIA\fP jest \fBskip\fP, to urządzenia są po cichu pomijane. Jeśli \fIDZIAŁANIEM\fP jest \fBrecurse\fP, odczytywane są rekurencyjnie wszystkie pliki w danym katalogu, podążając za dowiązaniami symbolicznymi wyłącznie wtedy, gdy zostały podane w wierszu polecenia. Jest to równoważne podaniu opcji \fB\-r\fP. .TP \fB\-\^\-exclude=\fP\fIWZORZEC\fP Pomija jakiekolwiek pliki z przyrostkiem nazwy, który zgadza się ze \fIWZORCEM\fP używając dopasowania wieloznacznego; przyrostek nazwy jest albo całą nazwą pliku, albo końcową częścią, która zaczyna się od znaku innego niż ukośnik występującego od razu po ukośniku \fB/\fP w nazwie. Przy wyszukiwaniu rekurencyjnym, pomija jakikolwiek podplik, którego bazowa nazwa zgadza się z \fIWZORCEM\fP; nazwa bazowa jest częścią po ostatnim \fB/\fP. Wzorzec może wykorzystywać \fB*\fP, \fB?\fP albo \fB[\fP.\|.\|.\fB]\&\fP jako wieloznaczniki oraz \fB\e\fP, aby zacytować wieloznacznik lub odwrócony ukośnik. .TP \fB\-\^\-exclude\-from=\fP\fIPLIK\fP Pomija pliki, których nazwa pasuje do któregoś ze wzorców odczytanego z \fIPLIKU\fP (używając masek, opisanych w opcji \fB\^\-exclude\fP). .TP \fB\-\^\-exclude\-dir=\fP\fIWZORZEC\fP Pomija jakiekolwiek katalogi z przyrostkiem nazwy, który zgadza się ze \fIWZORCEM\fP. Przy wyszukiwaniu rekurencyjnym, pomija jakiekolwiek podkatalogi, których bazowa nazwa zgadza się ze \fIWZORCEM\fP. Ignoruje wszystkie powtarzające się ukośniki we \fIWZORCU\fP. .TP \fB\-I\fP Przetwarza plik binarny tak, jakby nie zawierał pasujących danych, jest to równoważne opcji \fB\-\^\-binary\-files=without\-match\fP. .TP \fB\-\^\-include=\fP\fIWZORZEC\fP Wypisuje jedynie pliki, których nazwy bazowe pasują do \fIWZORCA\fP (używając masek opisanych w opcji \fB\-\^\-exclude\fP). Jeśli podano sprzeczne opcje \fB\-\^\-include\fP i \fB\-\^\-exclude\fP, wygrywa opcja, której uda dopasować się jako ostatniej. Jeśli obydwu opcjom nie uda się niczego dopasować, plik jest uwzględniany, chyba że jako pierwszą podano opcję \fB\-\^\-include\fP. .TP \fB\-r\fP, \fB\-\^\-recursive\fP Czyta rekurencyjnie wszystkie pliki pod każdym katalogiem, podążając za dowiązaniami symbolicznymi tylko jeśli zostały podane w wierszu polecenia. Proszę zauważyć, że jeżeli nie jest dany żaden argument operacji, \fBgrep\fP przeszukuje katalog roboczy. Jest to równoważne opcji \fB\-d recurse\fP. .TP \fB\-R\fP, \fB\-\^\-dereference\-recursive\fP Czyta rekurencyjnie wszystkie pliki pod każdym katalogiem. Podąża za każdym dowiązaniem symbolicznym, w odróżnieniu od \fB\-r\fP. .SS "Inne opcje" .TP \fB\-\^\-line\-buffered\fP Używa buforowania wierszy wyjścia. Użycie tej opcji może spowodować niższą wydajność. .TP \fB\-U\fP, \fB\-\^\-binary\fP Traktuje plik(i) jako binarne. Domyślnie, w MS\-DOS i MS\-Windows, \fBgrep\fP zgaduje, czy plik zawiera tekst lub dane binarne, jak zostało to opisane przy opcji \fB\-\^\-binary\-files\fP. Jeśli \fBgrep\fP zdecyduje, że plik jest tekstowy, usuwa znaki CR (powrót karetki) z oryginalnej zawartości pliku (po to, żeby wyrażenia regularne z \fB^\fP i \fB$\fP działały poprawnie). Podanie \fB\-U\fP wyłącza tę analizę powodując, że wszystkie pliki są odczytywane i przekazywane mechanizmowi dopasowującemu dosłownie; jeśli plik jest plikiem tekstowym z parami CR/LF na końcu wierszy, spowoduje to, że niektóre wyrażenia regularne nie zadziałają. Opcja ta nie działa na platformach innych niż MS\-DOS i MS\-Windows. .TP \fB\-z\fP, \fB\-\^\-null\-data\fP Traktuje dane wejściowe i wyjściowe jako sekwencje wierszy zakończonych bajtem zerowym (znak ASCII NUL) zamiast znakiem końca wiersza. Podobnie jak opcje \fB\-Z\fP lub \fB\-\^\-null\fP, ta opcja może być używana z programami takimi jak \fBsort \-z\fP, aby przetworzyć nazwy plików o dowolnych nazwach. . .SH "WYRAŻENIA REGULARNE" Wyrażenie regularne to wzorzec opisujący zbiór łańcuchów. Wyrażenia regularne są budowane analogicznie do wyrażeń arytmetycznych, przez zastosowanie do połączenia mniejszych wyrażeń, rozmaitych operatorów. .PP Program \fBgrep\fP rozumie trzy różne wersje składni wyrażeń regularnych: \[Bq]podstawową\[rq] (BRE), \[Bq]rozszerzoną\[rq] (ERE) i \[Bq]perlową\[rq] (PCRE). W GNU \fBgrep\fP składnia podstawowa i rozszerzona stanowi tylko odmienną notację tej samej funkcjonalności dopasowania wzorców. W innych implementacjach, podstawowe wyrażenia regularne są zwykle uboższe niż rozszerzone, choć czasem bywa też odwrotnie. Poniższy opis stosuje się do rozszerzonych wyrażeń regularnych; różnice w stosunku do wyrażeń podstawowych podsumowano na końcu. Wyrażenia regularne kompatybilne z Perlem mają inną funkcjonalność, są udokumentowane w podręcznikach systemowych \fBpcre2syntax\fP(3) i \fBpcre2pattern\fP(3), lecz działają tylko jeśli w systemie jest dostępne PCRE. .PP Podstawowymi cegiełkami są wyrażenia regularne pasujące do pojedynczego znaku. Większość znaków, w tym wszystkie litery i cyfry są wyrażeniami regularnymi pasującymi do samych siebie. Każdy metaznak mający specjalne znaczenie może być zacytowany przez poprzedzenie go odwrotnym ukośnikiem. .PP Kropka \fB.\&\fP pasuje do każdego pojedynczego znaku. Nie jest określone czy pasuje ona do błędu kodowania. .SS "Klasy znakowe i wyrażenia klamrowe" \fIWyrażenie klamrowe\fP jest listą znaków zawartych pomiędzy \fB[\fP a \fB]\fP. Pasuje do każdego pojedynczego znaku na tej liście. Jeśli pierwszy znak z listy jest daszkiem \fB^\fP, to wyrażenie pasuje do każdego pojedynczego znaku \fInie\fP znajdującego się na liście; nie jest określone czy pasuje do błędu kodowania. Na przykład, wyrażenie regularne \fB[0123456789]\fP pasuje do każdej pojedynczej cyfry. .PP W obrębie wyrażenia klamrowego, \fIwyrażenie zakresowe\fP składa się z dwóch znaków rozdzielonych minusem. Pasuje do pojedynczego znaku, który mieści się między tymi dwoma znakami, łącznie z nimi, używając ustawień językowych (locale) określających kolejność i zestaw znaków. Na przykład, w domyślnych ustawieniach locale C, \fB[a\-d]\fP jest odpowiednikiem \fB[abcd]\fP. Wiele ustawień regionalnych sortuje znaki w kolejności słownikowej, i \fB[a\-d]\fP nie jest wtedy z reguły odpowiednikiem \fB[abcd]\fP, może być na przykład równoważne \fB[aBbCcDd]\fP (dla języka polskiego: \fB[aąbcćd]\fP \- tłum.). Aby uzyskać tradycyjną interpretację wyrażeń zakresowych, można użyć locale C, przypisując zmiennej środowiskowej \fBLC_ALL\fP wartość \fBC\fP. .PP Istnieją predefiniowane, nazwane klasy znakowe, których można używać wewnątrz wyrażeń klamrowych. Posiadają opisowe nazwy w języku angielskim i są to: \fB[:alnum:]\fP (litery i cyfry), \fB[:alpha:]\fP (litery), \fB[:blank:]\fP (puste), \fB[:cntrl:]\fP (znaki kontrolne), \fB[:digit:]\fP (cyfry), \fB[:graph:]\fP ([:alnum:] i [:punct:]), \fB[:lower:]\fP (małe litery), \fB[:print:]\fP ([:graph:] i spacja), \fB[:punct:]\fP (znaki przestankowe), \fB[:space:]\fP (białe znaki), \fB[:upper:]\fP (duże litery) i \fB[:xdigit:]\fP (znaki szesnastkowe). Na przykład \fB[[:alnum:]]\fP zawiera zestaw liter i cyfr zależnych od aktualnych ustawień językowych. W ustawieniach locale C i kodowaniu znaków ASCII, jest to odpowiednik \fB[0\-9A\-Za\-z]\fP (w polskich ustawieniach [0\-9A\-Ża\-ż] \- tłum.). (Proszę zauważyć, że nawiasy kwadratowe w nazwach klas są częścią nazw symbolicznych i muszą być umieszczone dodatkowo, oprócz pary nawiasów ograniczającej samą listę.) Większość metaznaków traci swoje szczególne znaczenie wewnątrz wyrażeń klamrowych. Aby umieścić tam dosłowny znak \fB]\fP, należy go umieścić jako pierwszy. Podobnie, dosłowny \fB^\fP, może się znaleźć gdziekolwiek poza pierwszym miejscem. W końcu, dosłowny \fB\-\fP musi się znaleźć na końcu. .SS "Początek i koniec wiersza" Znak daszka \fB^\fP i dolara \fB$\fP są metaznakami, które pasują odpowiednio do łańcucha pustego na początku i końcu wiersza. .SS "Ukośnik i wyrażenia specjalne" Symbole \fB\e<\fP i \fB\e>\fP oznaczają pusty łańcuch odpowiednio na początku i końcu słowa. Symbol \fB\eb\fP pasuje do pustego łańcucha na krawędzi słowa, zaś \fB\eB\fP pasuje do ciągu pustego zakładając, że \fInie\fP jest na krawędzi słowa. Symbol \fB\ew\fP jest synonimem \fB[_[:alnum:]]\fP, z kolei \fB\eW\fP jest synonimem \fB[^_[:alnum:]]\fP. .SS Powtarzanie Po wyrażeniach regularnych mogą się znajdować jeden lub kilka operatorów powtórzenia: .PD 0 .TP \fB?\fP Poprzedzający element jest opcjonalny i dopasowany co najwyżej jeden raz. .TP \fB*\fP Poprzedzający element będzie dopasowany zero lub więcej razy. .TP \fB+\fP Poprzedzający element będzie dopasowany jeden lub więcej razy. .TP \fB{\fP\fIn\fP\fB}\fP Poprzedzający element pasuje dokładnie \fIn\fP razy. .TP \fB{\fP\fIn\fP\fB,}\fP Poprzedzający element pasuje \fIn\fP lub więcej razy. .TP \fB{,\fP\fIm\fP\fB}\fP Poprzedzający element pasuje co najwyżej \fIm\fP razy. Jest to rozszerzenie GNU. .TP \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP Poprzedzający element pasuje co najmniej \fIn\fP razy, ale nie więcej niż \fIm\fP razy. .PD .SS Suma Dwa wyrażenia regularne można ze sobą złączyć; do wynikowego wyrażenia regularnego pasuje każdy łańcuch utworzony przez złączenie dwóch podłańcuchów, które odpowiednio pasują do złączonych wyrażeń. .SS Alternatywa Dwa wyrażenia regularne można połączyć operatorem wrostkowym \fB|\fP; do wynikowego wyrażenia regularnego pasuje dowolny łańcuch pasujące do jednego bądź do drugiego z podwyrażeń. .SS "Kolejność wykonywania" Powtarzanie ma priorytet na sumowaniem, które z kolei ma priorytet nad alternatywą. Całe wyrażenie regularne można ująć w nawiasy, celem unieważnienia reguł priorytetowych. W ten sposób zostanie utworzone podwyrażenie. .SS "Odwołania zwrotne i podwyrażenia" Odwołanie zwrotne \fB\e\fP\fIn\fP \&, gdzie \fIn\fP jest cyfrą pasującą do podłańcucha dopasowanego poprzednio przez \fIn\fP\-te podwyrażenie wyrażenia regularnego, ujęte w nawiasy. .SS "Podstawowe i rozszerzone wyrażenia regularne" W podstawowych wyrażeniach regularnych metaznaki \fB?\fP, \fB+\fP, \fB{\fP, \fB|\fP, \fB(\fP i \fB)\fP tracą swoje szczególne znaczenie; zamiast nich należy używać wersji z odwrotnym ukośnikiem: \fB\e?\fP, \fB\e+\fP, \fB\e{\fP, \fB\e|\fP, \fB\e(\fP oraz \fB\e)\fP. . .SH "STATUS ZAKOŃCZENIA" Typowo, statusem wyjściowym jest 0 jeśli dopasowano wiersz, 1, gdy nic nie dopasowano oraz 2, jeżeli wystąpił błąd. Jednakże, jeżeli użyto \fB\-q\fP, \fB\-\^\-quiet\fP lub \fB\-\^\-silent\fP oraz dopasowano wiersz, statusem wyjściowym będzie 0, nawet jeśli wystąpił błąd. . .SH ŚRODOWISKO Zachowanie \fBgrep\fPa można zmienić poniższymi zmiennymi środowiskowymi. .PP Ustawienia regionalne (locale) dla kategorii \fBLC_\fP\fIfoo\fP są określane przez sprawdzanie trzech zmiennych środowiska, \fBLC_ALL\fP, \fBLC_\fP\fIfoo\fP, \fBLANG\fP; w tej kolejności. Pierwsza z tych zmiennych, która jest ustawiona, określa locale. Na przykład, jeśli \fBLC_ALL\fP nie jest ustawiona, ale \fBLC_MESSAGES\fP jest ustawiona na \fBpt_BR\fP, to dla kategorii \fBLC_MESSAGES\fP używane są ustawienia brazylijskiej odmiany portugalskiego. Jeśli żadna z powyższych zmiennych nie jest ustawiona, katalog locale nie jest zainstalowany, lub \fBgrep\fP nie został skompilowany z obsługą języka narodowego (NLS), to używane są locale C. Dostępne locale można sprawdzić komendą \fBlocale \-a\fP. .TP \fBGREP_COLORS\fP Kontroluje sposób, w jaki opcja \fB\-\^\-color\fP koloruje wyjście. Jej wartością jest lista możliwości, oddzielonych dwukropkami, która domyślnie wygląda następująco: \fBms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36\fP, z pominiętymi wartościami logicznymi \fBrv\fP i \fBne\fP (tzn. ustawionymi na fałsz). Obsługiwane możliwości to: .RS .TP \fBsl=\fP Podciąg SGR dla całego wybranego wiersza (tzn. pasującego, jeśli nie podano opcji \fB\-v\fP lub niepasującego w przeciwnym wypadku). Jeśli jednak wartość logiczna \fBrv\fP i opcja wiersza poleceń \fB\-v\fP zostały podane, to będzie on dotyczył w zamian kontekstu pasujących wierszy. Domyślnie jest pusta (tzn. ustawiona jest domyślna para kolorów terminala). .TP \fBcx=\fP Podciąg SGR dla wszystkich wierszy kontekstu (tzn. niepasujących wierszy, jeśli nie podano opcji \fB\-v\fP lub pasujących w przeciwnym wypadku). Jeśli jednak wartość logiczna \fBrv\fP i opcja wiersza poleceń \fB\-v\fP zostały podane, to będzie on dotyczył w zamian wybranych, niepasujących wierszy. Domyślnie jest pusta (tzn. ustawiona jest domyślna para kolorów terminala). .TP \fBrv\fP Wartość logiczna, która odwraca znaczenie możliwości \fBsl=\fP i \fBcx=\fP, kiedy podano opcję wiersza poleceń \fB\-v\fP. Domyślnie jest ustawiona na fałsz (tzn. możliwość jest pominięta). .TP \fBmt=01;31\fP Podciąg SGR (zob. niżej) do pasującego, niepustego tekstu w dowolnym pasującym wierszu (tzn. wybranego wiersza, jeśli nie podano opcji wiersza poleceń \fB\-v\fP lub wiersza kontekstu w przeciwnym wypadku). Ustawienie go jest odpowiednikiem podania \fBms=\fP i \fBmc=\fP z tą samą wartością. Domyślnie jest to czerwony, pogrubiony tekst na aktualnym tle wiersza. .TP \fBms=01;31\fP Podciąg SGR do pasującego, niepustego tekstu w wybranym wierszu (jest używana tylko jeśli nie podano opcji wiersza poleceń \fB\-v\fP). Efekt możliwości \fBsl=\fP (lub \fBcx=\fP w przypadku \fBrv\fP) pozostaje aktywny. Domyślnie jest to czerwony, pogrubiony tekst na aktualnym tle wiersza. .TP \fBmc=01;31\fP Podciąg SGR do pasującego, niepustego tekstu w wierszu kontekstu (jest używana tylko jeśli podano opcję wiersza poleceń \fB\-v\fP). Efekt możliwości \fBcx=\fP (lub \fBsl=\fP w przypadku \fBrv\fP) pozostaje aktywny. Domyślnie jest to czerwony, pogrubiony tekst na aktualnym tle wiersza. .TP \fBfn=35\fP Podciąg SGR do nazw plików poprzedzających wszystkie wiersze zawartości. Domyślnie jest to purpurowy tekst na domyślnym tle terminala. .TP \fBln=32\fP Podciąg SGR do numerów wierszy poprzedzających wszystkie wiersze zawartości. Domyślnie, jest to zielony tekst na domyślnym tle terminala. .TP \fBbn=32\fP Podciąg SGR do offsetu bajtowego poprzedzającego wszystkie wiersze zawartości. Domyślnie, jest to zielony tekst na domyślnym tle terminala. .TP \fBse=36\fP Podciąg SGR do separatorów wstawianych pomiędzy wybranymi polami wiersza (\fB:\fP), pomiędzy polami wierszy kontekstu (\fB\-\fP i pomiędzy grupami przyległych wierszy, jeśli wybrano niezerowy kontekst (\fB\-\^\-\fP). Domyślnie jest to cyjanowy tekst na domyślnym tle terminala. .TP \fBne\fP Wartość logiczna, która zapobiega czyszczeniu końca wiersza przy użyciu sekwencji Erase in Line (EL) to Right (\fB\e\33[K\fP) za każdym razem, gdy kończy pokolorowany wpis. Jest to wymagane na terminalach, które nie obsługują EL. Wartość jednak potrzebna na terminalach, dla których możliwość logiczna \fBback_color_erase\fP (\fBbce\fP) nie ma zastosowania, gdy wybrane kolory podświetlenia nie zmieniają tła, gdy EL jest zbyt wolne bądź powoduje znaczne migotanie. Domyślnym ustawieniem jest fałsz (tzn. możliwość jest pominięta). .PP Proszę zauważyć, że wartości logiczne nie posiadają części \[Bq]\fB=\fP.\|.\|.\&\[rq]. Są one domyślne pominięte (tzn. fałszywe) i stają się prawdziwe, jeśli zostaną podane. .PP Proszę zapoznać się z rozdziałem Select Graphic Rendition (SGR) w dokumentacji używanego terminala tekstowego, aby dowiedzieć się jakie są dozwolone wartości oraz poznać ich znaczenie. Te wartości podciągów są liczbami całkowitymi w systemie dziesiętnym i mogą być łączone średnikami. Program \fBgrep\fP zajmuje się łączeniem rezultatu w kompletną sekwencję SGR (\fB\e33[\fP.\|.\|.\fBm\fP). Najczęściej używane wartości to: \fB1\fP \- pogrubienie, \fB4\fP \- podkreślenie, \fB5\fP \- miganie, \fB7\fP \- odwrócenie kolorów, \fB39\fP \- domyślny kolor tła, od \fB30\fP do \fB37\fP \- kolory tekstu, od \fB90\fP do \fB97\fP \- kolory tekstu w trybie 16 kolorów, od \fB38;5;0\fP do \fB38;5;255\fP \- kolory tekstu w trybie 88 i 256 kolorów, \fB49\fP \- domyślny kolor tła, od \fB40\fP do \fB47\fP kolory tła, od \fB100\fP do \fB107\fP \- kolory tła w trybie 16 kolorów i od \fB48;5;0\fP do \fB48;5;255\fP \- kolory tła w trybie 88 i 256 kolorów. .RE .TP \fBLC_ALL\fP, \fBLC_COLLATE\fP, \fBLANG\fP Zmienne określające ustawienia regionalne dla kategorii \fBLC_COLLATE\fP, która wyznacza kolejność sortowania używaną do interpretowania wyrażeń zakresowych, takich jak \fB[a\-z]\fP. .TP \fBLC_ALL\fP, \fBLC_CTYPE\fP, \fBLANG\fP Te zmienne ustawiają locale dla kategorii \fBLC_CTYPE\fP, od której zależą typy znaków, np. które są znakami białymi. Ta kategoria również ustala kodowanie znaków, czyli to, czy tekst jest zakodowany w UTF\-8, ASCII czy jakiejkolwiek innej stronie kodowej. W locale C lub POSIX, każdy znak jest zakodowany jako pojedynczy bajt, więc każdy bajt jest poprawnym znakiem. .TP \fBLC_ALL\fP, \fBLC_MESSAGES\fP, \fBLANG\fP Zmienne określające ustawienia regionalne dla kategorii \fBLC_MESSAGES\fP, która wyznacza język, używany przez \fBgrep\fPa do wyświetlania komunikatów. Domyślne locale C używają wiadomości w amerykańskiej odmianie angielskiego. .TP \fBPOSIXLY_CORRECT\fP Jeśli jest ustawiona, to \fBgrep\fP zachowuje się zgodnie z wymaganiami normy POSIX; w przeciwnym razie \fBgrep\fP działa bardziej jak inne programy GNU. POSIX wymaga, by opcje, które występują po nazwach plików były traktowane jak nazwy plików; domyślnie zaś, opcje takie są przesuwane na początek listy argumentów i traktowane jak opcje. Ponadto, POSIX wymaga, by nierozpoznane opcje były zgłaszane jako \[Bq]nielegalne\[rq] (\[Bq]illegal\[rq]), ale ponieważ tak naprawdę nie naruszają one prawa, domyślnie zgłaszane są jako \[Bq]nieprawidłowe\[rq] (\[Bq]invalid\[rq]). . .SH UWAGI Niniejsza strona podręcznika jest utrzymywana jedynie częściowo \- pełna dokumentacja jest często aktualniejsza. . .SH PRAWA\ AUTORSKIE Copyright 1998\-2000, 2002, 2005\-2023 Free Software Foundation, Inc. .PP Jest to wolne oprogramowanie; warunki rozpowszechniania znajdują się w źródle programu. NIE ma gwarancji, nawet PRZYDATNOŚCI\ HANDLOWEJ czy PRZYDATNOŚCI DO OKREŚLONEGO CELU. . .SH USTERKI .SS "Zgłaszanie błędów" Raporty błędów wysyłać mailem na adres .MT bug\-grep@gnu.org .ME . Archiwum email .UR https://lists.gnu.org/mailman/listinfo/bug\-grep oraz bug tracker .UR https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep .UE . .SS "Znane błędy" Duże liczniki powtórzeń w konstrukcji \fB{\fP\fIn\fP\fB,\fP\fIm\fP\fB}\fP mogą spowodować, że \fBgrep\fP zużyje mnóstwo pamięci. Oprócz tego, pewne inne niejasne wyrażenia regularne wymagają czasu i przestrzeni rosnącej wykładniczo i mogą spowodować, że \fBgrep\fPowi zabraknie pamięci. .PP Odwołania zwrotne są bardzo powolne i mogą wymagać czasu rosnącego wykładnicza. . .SH PRZYKŁAD Przykład poniżej zwraca lokację oraz zawartość każdego wiersza zawierającego \[Bq]f\[rq] oraz kończącego się \[Bq].c\[rq] we wszystkich plikach w obecnym katalogu, których nazwy zawierają \[Bq]g\[rq] oraz kończą się \[Bq].h\[rq]. Opcja \fB\-n\fP zwraca numery wierszy, parametr \fB\-\-\fP traktuje rozszerzenia \[Bq]*g*.h\[rq] zaczynające się od \[Bq]\-\[rq] jako nazwy plików zamiast jako opcje, a pusty plik /dev/null sprawia, że nazwy plików zostaną zwrócone, nawet jeśli tylko jedna nazwa będzie miała formę \[Bq]*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 Jedynym wierszem pasującym do wzorca jest pierwszy wiersz pliku argmatch.h. Należy zauważyć, że składnia wyrażenia regularnego użyta we wzorcu różni się od ogólnej składni używanej przez powłoki by dopasować nazwy plików. . .SH "ZOBACZ TAKŻE" .SS "Zwykłe strony man" \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 "Pełna dokumentacja" Pod adresem https://www.gnu.org/software/grep/manual/ dostępny jest pełen podręcznik \fBgrep\fP. Jeśli programy \fBinfo\fP i \fBgrep\fP są poprawnie zainstalowane, polecenie: .IP \fBinfo grep\fP .PP powinno dać dostęp do pełnego podręcznika. . .\" 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 TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Gwidon S. Naskrent , Wojtek Kotwica , Michał Kułach i Jakub Klimczak . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .