Provided by: manpages-pl_4.27.0-1_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.

       Debian dostarcza dodatkowo programy wariantowe egrep, fgrep i rgrep. Programy te są zupełnie  tym  samym,
       co   grep -E,  grep -F,  and  grep -r.  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 grep z odpowiednimi opcjami.

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.  Jeśli PLIKIEM jest -, odczytuje wzorce ze standardowego
              wejścia.

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

   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 wyż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. 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  LICZBA  wynosi  zero,  grep
              zatrzymuje  się  od  razu,  bez odczytywania wejścia. Jeśli LICZBA wynosi -1, jest traktowana jako
              nieskończoność i grep się nie zatrzymuje, tak jest  domyślnie.  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 wiadomością kierowaną na standardowe wyjście
              błędów i 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 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 pcre2syntax(3) i pcre2pattern(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 \).

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  -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_COLORS
              Kontroluje sposób, w jaki opcja --color koloruje wyjście. 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”).

UWAGI

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

PRAWA AUTORSKIE

       Copyright 1998-2000, 2002, 2005-2023 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.

USTERKI

   Zgłaszanie błędów
       Raporty  błędów  wysyłać  mailem  na  adres  ⟨bug-grep@gnu.org⟩.   Archiwum  email   oraz   bug   tracker
       ⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩

   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), pcre2(3),  pcre2syntax(3),
       pcre2pattern(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

       Tłumaczenie  niniejszej strony podręcznika: 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⟩.

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