Provided by: manpages-pl_4.13-4_all bug

NAZWA

       grep, egrep, fgrep, rgrep - 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 wówczas
       rozdzielić znakiem nowego wiersza,  przy  czym  grep  wypisze  każdy  wiersz  pasujący  do
       któregoś  z  wzorców.  WZORCE  powinny  być  zwykle cytowane, jeśli grep jest używany jako
       polecenie powłoki.

       PLIK - oznacza standardowe wejście. Jeśli  nie  podano  PLIKU,  rekurencyjne  wyszukiwania
       sprawdzą obecny katalog roboczy, a nierekurencyjne - czytają ze standardowego wejścia.

       Dodatkowo,  programy wariantowe egrep, fgrep and rgrep są zupełnie tym samym, co  grep -E,
       grep -F, and grep -r.  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 literalne ciągi znaków, 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
       -e WZORCE, --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 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 -i, by anulował ten efekt ponieważ te dwie opcje się nadpisują.

       -v, --invert-match
              Odwraca sens dopasowania, wybierając wiersze 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 zadziała, jeśli podano również -x.

       -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,  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ą 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 (nigdy), always
              (zawsze) i auto (automatycznie).

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

       -l, --files-with-matches
              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.

       -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 i wypisano LICZBĘ  pasujących  wierszy,  to
              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, liczone od 0, przesunięcie  bajtowe  w
              pliku  wejściowym.  Jeśli  użyto opcji -o (--only-matching), wyświetla przesunięcie
              samej pasującej części.

       -H, --with-filename
              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.

       -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  przesunięcie  bajtowe  (jeśli  są  obecne)  zostaną
              wyświetlone z najmniejszą szerokością pola.

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

       --group-separator=SEPARATOR
              Gdy użyto -A, -B, lub -C wypisuje SEPARATOR zamiast -- pomiędzy grupami wierszy.

       --no-group-separator
              Gdy użyto -A, -B, lub -C nie wypisuje separatora pomiędzy grupami wierszy.

   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ślnym TYPEM jest binary, 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
              jednowierszową 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 ma wartość 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 pasować do q po którym niespodziewanie następuje bajt  null,  nawet
              jeśli  te wzorce nie zostałaby dopasowane, gdyby TYPEM był text. I odwrotnie, kiedy
              TYPEM jest binary, wzorzec . (kropka) 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 zinterpretuje to
              wszystko jako polecenia. Z drugiej jednak strony, czytając pliki, których kodowanie
              tekstu  pozostaje  nieznane,  przydatne  może być użycie -a lub ustawienie zmiennej
              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, kolejką 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ż ukośnik występującego
              od razu po ukośniku / 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
              Wypisuje jedynie pliki, których nazwy  bazowe  pasują  do  WZORCA  (używając  masek
              opisanych  w  opcji --exclude). Jeśli podano sprzeczne opcje --include i --exclude,
              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ę
              --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]  (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 ], 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 jeśli dopasowano wiersz, 1, gdy nic nie dopasowano oraz
       2, jeżeli wystąpił błąd. Jednakże, jeżeli użyto -q, --quiet lub --silent  oraz  dopasowano
       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  (zob.  niżej)  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-2021 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
       Raporty błędów wysyłać mailem na adres email oraz bug tracker

   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żdego wiersza zawierającego "f" oraz
       kończącego 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

       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.

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
       Pod adresem https://www.gnu.org/software/grep/manual/ dostępny jest pełen podręcznik grep.
       Jeśli programy info i grep są poprawnie zainstalowane, polecenie:

              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 listy dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.