egrep

GREP(1)                       Polecenia użytkownika                      GREP(1)



NAZWA
       grep, egrep, fgrep - wypisuje wiersze pasujące do wzorca

SKŁADNIA
       grep [OPCJA...] WZORCE [PLIK...]
       grep [OPCJA...] -e WZORCE ... [PLIK...]
       grep [OPCJA...] -f PLIK_WZORCOWY ... [PLIK...]

OPIS
       grep szuka WZORCÓW w każdym PLIKU. Wzorców może być więcej niż jeden,
       należy je rozdzielić znakiem nowej linii, grep wypisze każdą linię
       pasującą do któregoś z wzorców. Wzorce powinny znajdować się w
       cudzysłowie kiedy grep jest używany w jako komenda shell.

       PLIK - oznacza standardowe wejście. Jeśli nie podano PLIKU, rekursywnie
       wyszukiwanie sprawdza obecny katalog roboczy, a nierekursywne
       wyszukiwanie czyta ze standardowego wejścia.

       Dodatkowo, programy wariantowe egrep oraz fgrep są zupełnie tym samym, co
       grep -E oraz grep -F. Te warianty są już zdeprecjonowane, ale działają
       nadal w celu zachowania kompatybilności wstecznej.

OPCJE
   Standardowe informacje programu
       --help Wyświetla komunikat pomocy i wychodzi.

       -V, --version
              Wyświetla numer wersji grep i wychodzi.

   Składnia wzorca
       -E, --extended-regexp
              Interpretuje WZORCE jako rozszerzone wyrażenie regularne (ERE,
              patrz niżej).

       -F, --fixed-strings
              Interpretuje WZORCE jako określone łańcuchy, a nie jako wyrażenia
              regularne.

       -G, --basic-regexp
              Interpretuje WZORCE jako podstawowe wyrażenie regularne (BRE,
              patrz niżej). Jest to zachowanie domyślne.

       -P, --perl-regexp
              Interpretuje WZORCE jako wyrażenie regularne kompatybilne z Perlem
              (PCRE). Jest to opcja wysoce eksperymentalna, połączenie z opcjami
              -z (--null-data) oraz grep -P może ostrzegać o jeszcze
              niewdrożonych funkcjach.

   Kontrola dopasowania
       -eWZORCE, --regexp=WZORCE
              Używa WZORCE jako wzorca. Jeżeli ta opcja została użyta
              wielokrotnie lub jest połączona z opcją -f (--file), szuka
              wszystkich podanych wzorców. Ta opcja może być użyta do ochrony
              wzorców rozpoczynających się znakiem "-".

       -f PLIK, --file=PLIK
              Pobiera wzorce z PLIKU, po jednym na wiersz. Jeżeli ta opcja
              została użyta wielokrotnie lub jest połączona z opcją -e
              (--regexp), szuka wszystkich podanych wzorców. Pusty plik zawiera
              zero wzorców, więc nie pasuje do niczego.

       -i, --ignore-case
              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.

       --no-ignore-case
              Nie ignoruj różnicy wielkości liter we wzorcach oraz danych
              wejściowych. Jest to zachowanie domyślne. Ta opcja jest użyteczna
              by przekazać skryptowi shell, który już używa -i, by anulował ten
              efekt ponieważ te dwie opcje się nadpisują.

       -v, --invert-match
              Odwraca sens dopasowania, wybierając linie niepasujące.

       -w, --word-regexp
              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 da żadnego efektu, jeżeli -x również został uściślony.

       -x, --line-regexp
              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 ^ oraz $.

       -y     Przestarzały synonim -i.

   Ogólna kontrola wyniku
       -c, --count
              Wyłącza normalne wyjście, zamiast niego, dla każdego pliku
              wejściowego, wypisuje liczbę pasujących wierszy. Z opcją -v,
              --invert-match (patrz niżej), liczy wiersze niepasujące.

       --color[=KIEDY], --colour[=KIEDY]
              Otacza pasujące (niepuste) łańcuchy, pasujące wiersze, wiersze
              kontekstu, nazwy plików, numery wierszy, offset bajtowy 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ą GREP_COLORS. Przestarzała
              zmienna środowiskowa GREP_COLOR jest wciąż obsługiwana, ale jej
              ustawienia nie mają pierwszeństwa. Parametr KIEDY może przyjmować
              wartości: never, always i auto.

       -L, --files-without-match
              Wyłącza normalne wyjście, zamiast niego wypisuje nazwę każdego
              pliku, z którego normalnie nie wypisano by żadnego wyniku.
              Przeszukiwanie zakończy się na pierwszym pasującym wyniku.

       -l, --files-with-matches
              Wyłącza normalne wyjście, zamiast niego wypisuje nazwę każdego
              pliku, z którego normalnie wypisanoby wynik. Przeszukiwanie
              zakończy się na pierwszym pasującym wyniku.

       -m LICZBA, --max-count=LICZBA
              Zatrzymuje odczytywanie pliku po LICZBIE pasujących wierszy. Jeśli
              wejście jest standardowym wejściem ze zwykłego pliku, a LICZBA
              pasujących wierszy jest wyjściem, grep 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 grep zatrzyma się po LICZBIE
              pasujących wierszy, nie wyświetla końcowych wierszy kontekstu.
              Jeżeli podano także opcję -c lub --count, grep nie wyświetla
              liczby większej niż LICZBA. Jeśli podano również opcję -v lub
              --invert-match, to grep zatrzymuje wyświetlanie po wypisaniu
              LICZBY niepasujących wierszy.

       -o, --only-matching
              Wyświetla tylko pasujące (niepuste) części pasującego wiersza,
              każda w osobnym wierszu.

       -q, --quiet, --silent
              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 -s
              lub --no-messages.

       -s, --no-messages
              Ignoruje błędy spowodowane przez nieistniejące lub nieczytelne
              pliki.

   Kontrola przedrostków w wierszu wyjścia
       -b, --byte-offset
              Wypisuje przed każdym wierszem wyjścia jego, liczony od 0, offset
              bajtowy w pliku wejściowym. Jeśli użyto opcji -o
              (--only-matching), wyświetla offset samej pasującej części.

       -H, --with-filename
              Wyświetla nazwę pliku dla każdego dopasowania. Jest to domyślne
              ustawienia, jeśli jest więcej niż jeden plik do przeszukania.

       -h, --no-filename
              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.

       --label=ETYKIETA
              Wyświetla wejście, które w rzeczywistości pochodzi ze
              standardowego wejścia, jako wejście pochodzące z pliku ETYKIETA.
              Może to być szczególnie przydatne przy komendach, które
              przekształcają zawartość pliku przed wyszukiwaniem, np. gzip -cd
              foo.gz | grep --label=foo -H 'jakiś wzorzec'. Patrz też: opcja -H.

       -n, --line-number
              Poprzedza każdy wiersz wyjścia, liczonym od 1, numerem wiersza z
              pliku wejściowego.

       -T, --initial-tab
              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ą: -H, -n i -b. Aby zwiększyć prawdopodobieństwo, że
              wiersze z danego pliku będą się zaczynać w tej samej kolumnie,
              numer wiersza i offset bajtowy (jeśli jest obecny) zostanie
              wyświetlony z najmniejszą szerokością pola.

       -u, --unix-byte-offsets
              Wyświetla offsety bajtowe w stylu uniksowym. Przełącznik ten
              powoduje, że grep wyświetla offsety bajtowe tak, jakby był plikiem
              tekstowym typu uniksowego tzn. bez znaków CR (powrót karetki). Da
              to rezultaty identyczne jak uruchomienie grepa na systemie
              uniksowym. Opcja ta nie wywołuje żadnego efektu, chyba że użyto
              także opcji -b; nie ma też żadnego efektu na platformach innych
              niż MS-DOS i MS Windows.

       -Z, --null
              Zamiast znaku, który normalnie występuje po nazwie pliku, wypisuje
              bajt zerowy (ASCII NUL). Na przykład, grep -lZ 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: find -print0, perl -0,
              sort -z i xargs -0, umożliwiając przetwarzanie plików o dowolnych
              nazwach, nawet zawierających znaki nowego wiersza.

   Kontrola wierszy z kontekstem
       -A LICZBA, --after-context=LICZBA
              Wyświetla LICZBĘ wierszy z kontekstem, następujących po
              dopasowanych wierszach. Pomiędzy ciągłymi grupami dopasowań
              umieszczany jest wiersz zawierający separator grupy (--). Nie
              działa z opcją -o lub --only-matching, wyświetlane jest wówczas
              również ostrzeżenie.

       -B LICZBA, --before-context=LICZBA
              Wyświetla LICZBĘ wierszy z kontekstem, poprzedzających dopasowane
              wiersze. Pomiędzy ciągłymi grupami dopasowań umieszczany jest
              wiersz zawierający separator grupy (--). Nie działa z opcją -o lub
              --only-matching, wyświetlane jest wówczas również ostrzeżenie.

       -C LICZBA, -LICZBA, --context=LICZBA
              Wyświetla LICZBĘ wierszy z kontekstem. Pomiędzy ciągłymi grupami
              dopasowań umieszczany jest wiersz zawierający separator grupy
              (--). Nie działa z opcją -o lub --only-matching, wyświetlane jest
              wówczas również ostrzeżenie.

   Wybór plików i katalogów
       -a, --text
              Przetwarza plik binarny tak, jakby był on plikiem tekstowym; jest
              to odpowiednik opcji --binary-files=text.

       --binary-files=TYP
              Jeżeli dane lub metadane pliku wskazują na to, że zawiera on dane
              binarne, zakłada, że jest on typu TYP. Bajty nietekstowe oznaczają
              dane binarne; są to albo niepoprawnie zakodowane znaki, albo bajty
              wejściowe null, kiedy opcja -z nie została użyta.

              Domyślnie TYP jest binarny, a grep 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, grep kończy każdy wynik jedno-liniową
              wiadomością informującą, że plik binarny pasuje do wzorca.

              Jeżeli TYPEM jest without-match, to kiedy grep wykryje, że wejście
              zawiera binarny null, zakłada, że reszta pliku nie pasuje. Jest to
              odpowiednik opcji -I.

              Jeżeli TYPEM jest text, to grep przetwarza plik binarny tak, jakby
              był on plikiem tekstowym; jest to odpowiednik opcji -a.

              Kiedy typ to binary, grep może traktować bajty nietekstowe jako
              zakończenia wierszy nawet bez opcji -z. To oznacza, że wybór
              między binary a text może wpływać na to, czy wzorzec pasuje do
              pliku. Na przykład, kiedy typem jest binary, to wzorzec q$ może
              zgadzać się z q, po którym niespodziewanie następuje bajt null,
              nawet jeśli te wzorce nie pasują do siebie, kiedy typem jest text.
              I odwrotnie, kiedy type to binary, wzorzec . może nie zgadzać się
              z bajtem null.

              Ostrzeżenie: Opcja -a może zwrócić binarny śmietnik, co może mieć
              nieprzyjemne skutki, jeżeli wyjściem jest terminal, a sterownik
              terminala to wszystko zinterpretuje jako komendy. Z drugiej jednak
              strony, czytając pliki, których kodowanie tekstu pozostaje
              nieznane, może być użytecznym użycie -a lub ustawienie LC_ALL='C'
              w środowisku, aby znaleźć więcej dopasowań, nawet jeśli ich
              bezpośrednie wyświetlenie byłoby niebezpieczne.

       -D DZIAŁANIE, --devices=DZIAŁANIE
              Jeśli plik wejściowy jest urządzeniem, FIFO lub gniazdem, używa
              DZIAŁANIA do przetworzenia go. Domyślnym DZIAŁANIEM jest read, co
              znaczy, że urządzenia są odczytywane dokładnie tak samo, jak gdyby
              były zwykłymi plikami. Jeśli wartością DZIAŁANIA jest skip, to
              urządzenia są po cichu pomijane.

       -d DZIAŁANIE, --directories=DZIAŁANIE
              Jeśli plik wejściowy jest katalogiem, używa DZIAŁANIA do
              przetworzenia go. Domyślnym DZIAŁANIEM jest read, tzn.
              odczytywanie katalogów dokładnie tak samo, jak gdyby były zwykłymi
              plikami. Jeśli wartością DZIAŁANIA jest skip, to urządzenia są po
              cichu pomijane. Jeśli DZIAŁANIEM jest recurse, 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 -r.

       --exclude=WZORZEC
              Pomija jakiekolwiek pliki z przyrostkiem nazwy, który zgadza się
              ze WZORCEM 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ż slash występującego od razu po slashu / w
              nazwie. Przy wyszukiwaniu rekurencyjnym, pomija jakikolwiek
              podplik, którego bazowa nazwa zgadza się z WZORCEM; nazwa bazowa
              jest częścią po ostatnim /. Wzorzec może wykorzystywać *, ? albo
              [...] jako wieloznaczniki oraz \, aby zacytować wieloznacznik lub
              odwrócony ukośnik.

       --exclude-from=PLIK
              Pomija pliki, których nazwa pasuje do któregoś ze wzorców
              odczytanego z PLIKU (używając masek, opisanych w opcji -exclude).

       --exclude-dir=WZORZEC
              Pomija jakiekolwiek katalogi z przyrostkiem nazwy, który zgadza
              się ze WZORCEM. Przy wyszukiwaniu rekurencyjnym, pomija
              jakiekolwiek podkatalogi, których bazowa nazwa zgadza się ze
              WZORCEM. Ignoruje wszystkie powtarzające się ukośniki we WZORCU.

       -I     Przetwarza plik binarny tak, jakby nie zawierał pasujących danych,
              jest to równoważne opcji --binary-files=without-match.

       --include=WZORZEC
              Search only files whose base name matches GLOB (using wildcard
              matching as described under --exclude).  If contradictory
              --include and --exclude options are given, the last matching one
              wins.  If no --include or --exclude options match, a file is
              included unless the first such option is --include.

       -r, --recursive
              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, grep przeszukuje katalog roboczy. Jest to
              równoważne opcji -d recurse.

       -R, --dereference-recursive
              Czyta rekurencyjnie wszystkie pliki pod każdym katalogiem. Podąża
              za każdym dowiązaniem symbolicznym, w odróżnieniu od -r.

   Inne opcje
       --line-buffered
              Używa buforowania wierszy wyjścia. Użycie tej opcji może
              spowodować niższą wydajność.

       -U, --binary
              Traktuje plik(i) jako binarne. Domyślnie, w MS-DOS i MS-Windows,
              grep zgaduje, czy plik zawiera tekst lub dane binarne, jak zostało
              to opisane przy opcji --binary-files. Jeśli grep zdecyduje, że
              plik jest tekstowy, usuwa znaki CR (powrót karetki) z oryginalnej
              zawartości pliku (po to, żeby wyrażenia regularne z ^ i $ działały
              poprawnie). Podanie -U 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.

       -z, --null-data
              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 -Z lub --null, ta opcja może być
              używana z programami takimi jak sort -z, aby przetworzyć nazwy
              plików o dowolnych nazwach.

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.

       Program grep rozumie trzy różne wersje składni wyrażeń regularnych:
       "podstawową" (BRE), "rozszerzoną" (ERE) i "perlową" (PCRE). W GNU grep
       nie ma różnicy w funkcjonalności pomiędzy składniami podstawową i
       rozszerzoną. W innych implementacjach, podstawowe wyrażenia regularne są
       uboższe. 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 dają dodatkowe funkcjonalności,
       udokumentowane w podręcznikach systemowych pcresyntax(3) i
       pcrepattern(3), lecz działają tylko jeśli w systemie jest dostępne PCRE.

       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.

       Kropka . pasuje do każdego pojedynczego znaku. Nie jest określone czy
       pasuje ona do błędu kodowania.

   Klasy znakowe i wyrażenia klamrowe
       Wyrażenie klamrowe jest listą znaków zawartych pomiędzy [ a ]. Pasuje do
       każdego pojedynczego znaku na tej liście. Jeśli pierwszy znak z listy
       jest daszkiem ^, to wyrażenie pasuje do każdego pojedynczego znaku nie
       znajdującego się na liście; nie jest określone czy pasuje do błędu
       kodowania. Na przykład, wyrażenie regularne [0123456789] pasuje do każdej
       pojedynczej cyfry.

       W obrębie wyrażenia klamrowego, wyrażenie zakresowe 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, [a-d] jest odpowiednikiem [abcd].
       Wiele ustawień regionalnych sortuje znaki w kolejności słownikowej, i
       [a-d] nie jest wtedy z reguły odpowiednikiem [abcd], może być na przykład
       równoważne [aBbCcDd] (dla języka polskiego: [aąbcćd] - tłum.). Aby
       uzyskać tradycyjną interpretację wyrażeń zakresowych, można użyć locale
       C, przypisując zmiennej środowiskowej LC_ALL wartość C.

       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: [:alnum:] (litery i cyfry), [:alpha:] (litery), [:blank:]
       (puste), [:cntrl:] (znaki kontrolne), [:digit:] (cyfry), [:graph:]
       ([:alnum:] i [:punct:]), [:lower:] (małe litery), [:print:] ([:graph:] i
       spacja), [:punct:] (znaki przestankowe), [:space:] (białe znaki),
       [:upper:] (duże litery) i [:xdigit:] (znaki szesnastkowe). Na przykład
       [[:alnum:]] zawiera zestaw liter i cyfr zależnych od aktualnych ustawień
       językowych. W ustawieniach locale C i kodowaniu znaków ASCII, jest to
       odpowiednik [0-9A-Za-z]. (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 ], należy go umieścić jako pierwszy.
       Podobnie, dosłowny ^, może się znaleźć gdziekolwiek poza pierwszym
       miejscem. W końcu, dosłowny - musi się znaleźć na końcu.

   Początek i koniec wiersza
       Znak daszka ^ i dolara $ są metaznakami, które pasują odpowiednio do
       łańcucha pustego na początku i końcu wiersza.

   Ukośnik i wyrażenia specjalne
       Symbole \< i \> oznaczają pusty łańcuch odpowiednio na początku i końcu
       słowa. Symbol \b pasuje do pustego łańcucha na krawędzi słowa, zaś \B
       pasuje do ciągu pustego zakładając, że nie jest na krawędzi słowa. Symbol
       \w jest synonimem [_[:alnum:]], z kolei \W jest synonimem [^_[:alnum:]].

   Powtarzanie
       Po wyrażeniach regularnych mogą się znajdować jeden lub kilka operatorów
       powtórzenia:
       ?      Poprzedzający element jest opcjonalny i dopasowany co najwyżej
              jeden raz.
       *      Poprzedzający element będzie dopasowany zero lub więcej razy.
       +      Poprzedzający element będzie dopasowany jeden lub więcej razy.
       {n}    Poprzedzający element pasuje dokładnie n razy.
       {n,}   Poprzedzający element pasuje n lub więcej razy.
       {,m}   Poprzedzający element pasuje co najwyżej m razy. Jest to
              rozszerzenie GNU.
       {n,m}  Poprzedzający element pasuje co najmniej n razy, ale nie więcej
              niż m razy.

   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ń.

   Alternatywa
       Dwa wyrażenia regularne można połączyć operatorem wrostkowym |; do
       wynikowego wyrażenia regularnego pasuje dowolny łańcuch pasujące do
       jednego bądź do drugiego z podwyrażeń.

   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.

   Odwołania zwrotne i podwyrażenia
       Odwołanie zwrotne \n, gdzie n jest cyfrą pasującą do podłańcucha
       dopasowanego poprzednio przez n-te podwyrażenie wyrażenia regularnego,
       ujęte w nawiasy.

   Podstawowe i rozszerzone wyrażenia regularne
       W podstawowych wyrażeniach regularnych metaznaki ?, +, {, |, ( i ) tracą
       swoje szczególne znaczenie; zamiast nich należy używać wersji z odwrotnym
       ukośnikiem: \?, \+, \{, \|, \( oraz \).

KOD ZAKOŃCZENIA
       Typowo, statusem wyjściowym jest 0 przy zaznaczonym wierszu, 1, gdy nic
       nie jest zaznaczone oraz 2, jeżeli wystąpił błąd. Jednakże, jeżeli -q,
       --quiet lub --silent zostało użyte oraz zaznaczono wiersz, statusem
       wyjściowym będzie 0, nawet jeśli wystąpił błąd.

ŚRODOWISKO
       Zachowanie grepa można zmienić poniższymi zmiennymi środowiskowymi.

       Ustawienia regionalne (locale) dla kategorii LC_foo są określane przez
       sprawdzanie trzech zmiennych środowiska, LC_ALL, LC_foo, LANG; w tej
       kolejności. Pierwsza z tych zmiennych, która jest ustawiona, określa
       locale. Na przykład, jeśli LC_ALL nie jest ustawiona, ale LC_MESSAGES
       jest ustawiona na pt_BR, to dla kategorii LC_MESSAGES używane są
       ustawienia brazylijskiej odmiany portugalskiego. Jeśli żadna z powyższych
       zmiennych nie jest ustawiona, katalog locale nie jest zainstalowany, lub
       grep nie został skompilowany z obsługą języka narodowego (NLS), to
       używane są locale C. Dostępne locale można sprawdzić komendą locale -a.

       GREP_COLOR
              Ta zmienna określa kolor używany do podświetlenia dopasowanego
              (niepustego) tekstu. Jest przestarzała, lecz wciąż obsługiwana;
              powinno się obecnie używać GREP_COLORS. Możliwości mt, ms i mc
              zmiennej GREP_COLORS mają nad nią priorytet. Zmienna może określać
              jedynie kolor używany do podświetlania pasującego, niepustego
              tekstu w pasującym wierszu (wybranym, jeśli nie podano opcji -v
              albo wierszu kontekstu jeśli ją wpisano). Domyślnym ustawieniem
              jest 01;31, czyli pogrubiony, czerwony tekst na domyślnym tle
              terminala.

       GREP_COLORS
              Określa kolory i inne atrybuty użyte do podświetlania różnych
              części wyniku. Jej wartością jest lista możliwości, oddzielonych
              dwukropkami, która domyślnie wygląda następująco:
              ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36, z pominiętymi
              wartościami logicznymi rv i ne (tzn. ustawionymi na fałsz).
              Obsługiwane możliwości to:

              sl=    Podciąg SGR dla całego wybranego wiersza (tzn. pasującego,
                     jeśli nie podano opcji -v lub niepasującego w przeciwnym
                     wypadku). Jeśli jednak wartość logiczna rv i opcja wiersza
                     poleceń -v 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).

              cx=    Podciąg SGR dla wszystkich wierszy kontekstu (tzn.
                     niepasujących wierszy, jeśli nie podano opcji -v  lub
                     pasujących w przeciwnym wypadku). Jeśli jednak wartość
                     logiczna rv i opcja wiersza poleceń -v 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).

              rv     Wartość logiczna, która odwraca znaczenie możliwości sl= i
                     cx=, kiedy podano opcję wiersza poleceń -v. Domyślnie jest
                     ustawiona na fałsz (tzn. możliwość jest pominięta).

              mt=01;31
                     Podciąg SGR do pasującego, niepustego tekstu w dowolnym
                     pasującym wierszu (tzn. wybranego wiersza, jeśli nie podano
                     opcji wiersza poleceń -v lub wiersza kontekstu w przeciwnym
                     wypadku). Ustawienie go jest odpowiednikiem podania ms= i
                     mc= z tą samą wartością. Domyślnie jest to czerwony,
                     pogrubiony tekst na aktualnym tle wiersza.

              ms=01;31
                     Podciąg SGR do pasującego, niepustego tekstu w wybranym
                     wierszu (jest używana tylko jeśli nie podano opcji wiersza
                     poleceń -v). Efekt możliwości sl= (lub cx= w przypadku rv)
                     pozostaje aktywny. Domyślnie jest to czerwony, pogrubiony
                     tekst na aktualnym tle wiersza.

              mc=01;31
                     Podciąg SGR do pasującego, niepustego tekstu w wierszu
                     kontekstu (jest używana tylko jeśli podano opcję wiersza
                     poleceń -v). Efekt możliwości cx= (lub sl= w przypadku rv)
                     pozostaje aktywny. Domyślnie jest to czerwony, pogrubiony
                     tekst na aktualnym tle wiersza.

              fn=35  Podciąg SGR do nazw plików poprzedzających wszystkie
                     wiersze zawartości. Domyślnie jest to purpurowy tekst na
                     domyślnym tle terminala.

              ln=32  Podciąg SGR do numerów wierszy poprzedzających wszystkie
                     wiersze zawartości. Domyślnie, jest to zielony tekst na
                     domyślnym tle terminala.

              bn=32  Podciąg SGR do offsetu bajtowego poprzedzającego wszystkie
                     wiersze zawartości. Domyślnie, jest to zielony tekst na
                     domyślnym tle terminala.

              se=36  Podciąg SGR do separatorów wstawianych pomiędzy wybranymi
                     polami wiersza (:), pomiędzy polami wierszy kontekstu (- i
                     pomiędzy grupami przyległych wierszy, jeśli wybrano
                     niezerowy kontekst (--). Domyślnie jest to cyjanowy tekst
                     na domyślnym tle terminala.

              ne     Wartość logiczna, która zapobiega czyszczeniu końca wiersza
                     przy użyciu sekwencji Erase in Line (EL) to Right (\33[K)
                     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 back_color_erase (bce) 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).

              Proszę zauważyć, że wartości logiczne nie posiadają części "=...".
              Są one domyślne pominięte (tzn. fałszywe) i stają się prawdziwe,
              jeśli zostaną podane.

              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 grep zajmuje się łączeniem
              rezultatu w kompletną sekwencję SGR (\33[...m). Najczęściej
              używane wartości to: 1 - pogrubienie, 4 - podkreślenie, 5 -
              miganie, 7 - odwrócenie kolorów, 39 - domyślny kolor tła, od 30 do
              37 - kolory tekstu, od 90 do 97 - kolory tekstu w trybie 16
              kolorów, od 38;5;0 do 38;5;255 - kolory tekstu w trybie 88 i 256
              kolorów, 49 - domyślny kolor tła, od 40 do 47 kolory tła, od 100
              do 107 - kolory tła w trybie 16 kolorów i od 48;5;0 do 48;5;255 -
              kolory tła w trybie 88 i 256 kolorów.

       LC_ALL, LC_COLLATE, LANG
              Zmienne określające ustawienia regionalne dla kategorii
              LC_COLLATE, która wyznacza kolejność sortowania używaną do
              interpretowania wyrażeń zakresowych, takich jak [a-z].

       LC_ALL, LC_CTYPE, LANG
              Te zmienne ustawiają locale dla kategorii LC_CTYPE, 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.

       LC_ALL, LC_MESSAGES, LANG
              Zmienne określające ustawienia regionalne dla kategorii
              LC_MESSAGES, która wyznacza język, używany przez grepa do
              wyświetlania komunikatów. Domyślne locale C używają wiadomości w
              amerykańskiej odmianie angielskiego.

       POSIXLY_CORRECT
              Jeśli jest ustawiona, to grep zachowuje się zgodnie z wymaganiami
              normy POSIX; w przeciwnym razie grep 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 "nielegalne" ("illegal"), ale ponieważ tak naprawdę
              nie naruszają one prawa, domyślnie zgłaszane są jako
              "nieprawidłowe" ("invalid"). POSIXLY_CORRECT wyłącza także
              _N_GNU_nonoption_argv_flags_, opisane poniżej.

       _N_GNU_nonoption_argv_flags_
              N jest tu numerycznym identyfikatorem procesu grepa. Jeśli i-tym
              znakiem wartości tej zmiennej środowiska jest 1, to i-ty argument
              przekazany do grepa nie jest uważany za opcję, nawet jeśli na nią
              wygląda. Powłoka może umieścić tę zmienną w środowisku dla każdego
              polecenia jakie uruchamia, podając, które argumenty są wynikiem
              rozwinięcia nazw plików i dlatego nie powinny być traktowane jako
              opcje. Zachowanie to jest dostępne tylko z biblioteką GNU C i
              tylko wtedy, gdy nie ustawiono POSIXLY_CORRECT.

UWAGI
       Niniejsza strona podręcznika jest utrzymywana jedynie częściowo - pełna
       dokumentacja jest często aktualniejsza.

PRAWA AUTORSKIE
       Copyright 1998-2000, 2002, 2005-2020 Free Software Foundation, Inc.

       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.

BŁĘDY
   Zgłaszanie błędów
       Email bug reports to the bug-reporting address ⟨bug-grep@gnu.org⟩.  An
       email archive ⟨https://lists.gnu.org/mailman/listinfo/bug-grep⟩ and a bug
       tracker ⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩ are
       available.

   Znane błędy
       Duże liczniki powtórzeń w konstrukcji {n,m} mogą spowodować, że grep
       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 grepowi zabraknie pamięci.

       Odwołania zwrotne są bardzo powolne i mogą wymagać czasu rosnącego
       wykładnicza.

PRZYKŁAD
       Przykład poniżej zwraca lokację oraz zawartość każdej linii zawierającej
       "f" oraz kończącej się ".c" we wszystkich plikach w obecnym katalogu,
       których nazwy zawierają "g" oraz kończą się ".h". Opcja -n zwraca numery
       wierszy, parametr -- traktuje rozszerzenia ""*g*.h" zaczynające się od
       "-" 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ę "*g.h".

         $ grep -n -- 'f.*\.c$' *g*.h /dev/null
         argmatch.h:1:/* definitions and prototypes for argmatch.c

       Jedyną linią pasującą do wzorca jest 1 linia 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.

ZOBACZ TAKŻE
   Zwykłe strony man
       awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1),
       read(2), pcre(3), pcresyntax(3), pcrepattern(3), terminfo(5), glob(7),
       regex(7).

   Pełna dokumentacja
       Pełna instrukcja jest dostępna pod grepsą poprawnie zainstalowane na
       Twojej stronie, komenda

              info grep

       powinno dać dostęp do pełnego podręcznika.


TŁUMACZENIE
       Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Gwidon
       S. Naskrent <naskrent@hoth.amu.edu.pl>, Wojtek Kotwica
       <wkotwica@post.pl>, Michał Kułach <michal.kulach@gmail.com> i Jakub
       Klimczak <zuomarket@tuta.io>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o
       warunkach licencji można uzyskać zapoznając się z GNU General Public
       License w wersji 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ lub
       nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres
       manpages-pl-list@lists.sourceforge.net ⟨⟩.



GNU grep 3.6                       2019-12-29                            GREP(1)