Provided by: manpages-pl_20051117-1_all bug

NAZWA

       grep, egrep, fgrep - wypisz linie pasujące do wzorca

SKŁADNIA

       grep [opcje] wzorzec [plik...]
       grep [opcje] [-e wzorzec | -f plik] [plik...]

OPIS

       grep  przeszukuje  wskazane  pliki  wejściowe  (lub standardowe wejście
       jeśli nie podano żadnych lub podano nazwę pliku  '-'),  szukając  linii
       zawierających  coś  pasującego  do  podanego  wzorca.   Domyślnie, grep
       wypisuje pasujące linie.

       Dodatkowo dostępne są dwa programy wariantowe  egrep  i  fgrep.   Egrep
       jest tym samym, co grep -E.  Fgrep jest tym samym, co grep -F.

OPCJE

       -A num, --after-context=num
              Wypisuje   po   pasujących   liniach   num  linii  następującego
              kontekstu.

       -a, --text
              Przetwarza plik binarny tak, jakby  był  on  tekstowy;  jest  to
              równoważnik opcji --binary-fnums=text.

       -B num, --before-context=num
              Wypisuje  przed  pasującymi  liniami  num  linii poprzedzającego
              kontekstu.

       -C [num], -num, --context[=num]
              Wypisuje num linii (domyślnie 2) kontekstu w wyjściu.

       -b, --byte-offset
              Wypisuje przed każdą linią wyjścia jej offset  bajtowy  w  pliku
              wejściowym.

       --binary-files=typ
              Jeśli pierwszych kilka bajtów pliku wskazuje, że zawiera on dane
              binarne, to zakładane jest, że jest to plik typu typ.  Domyślnym
              typem  jest  binarny  (binary),  a  grep normalnie albo wypisuje
              jednolinijkowy komunikat mówiący o dopasowaniu pliku  binarnego,
              albo  nie  wypisuje  komunikatu, gdy nie znaleziono dopasowania.
              Jeżeli typem  jest  without-match  (bez  dopasowania),  to  grep
              zakłada,  że  ten  plik  binarny  nie pasuje; jest to równoważne
              działaniu opcji -I.  Jeśli typem jest text, to  grep  przetwarza
              plik  binarny  tak,  jakby  był  on tekstowy; jest to równoważne
              opcji -a.  Ostrzeenie: Może się zdarzyć, że wypisane przez grep
              --binary-files=text śmiecie binarne dadzą przykre skutki uboczne
              jeżeli wyjściem będzie terminal a jego  sterownik  zinterpretuje
              niektóre z nich jako swoje polecenia.

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

       -d akcja, --directories=akcja
              Jeśli   plik   wejściowy   jest   katalogiem,  stosuje  to  jego
              przetworzenia akcj.  Domyślną akcj jest read,  co  znaczy,  że
              katalogi  są  czytane  dokładnie  tak  samo, jakby były zwykłymi
              plikami.  Jeśli  wartością  akcji  jest  skip,  to  katalogi  są
              milcząco  pomijane.  Jeśli wartością akcji jest recurse, to grep
              czyta wszystkie pliki pod każdym katalogiem, rekurencyjnie; jest
              to równoważne opcji -r.

       -E, --extended-regexp
              Interpretuje wzorzec jako rozszerzone wyrażenie regularne (patrz
              niżej).

       -e wzorzec, --regexp=wzorzec
              Używa  wzorca  jako  wzorca;  użyteczne  do  ochronienia  wzorów
              zaczynających się od -.

       -F, --fixed-strings
              Interpretuje  wzorzec  jako  listę  łańcuchów o stałej długości,
              oddzielonych znakami nowej linii, które należy dopasować każdy z
              osobna.

       -f plik, --file=plik
              Pobiera  wzorce  z  plik,  po jednym z każdej linii.  Plik pusty
              zawiera zero wzorców, nie pasując do niczego.

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

       -H, --with-filename
              Dla każdego dopasowania wypisuje nazwę pliku.

       -h, --no-filename
              -h,  --no-filename  Wyłącza  poprzedzanie wyników nazwami plików
              podczas przeszukiwania wielu plików.

       --help Wypisuje krótki tekst pomocy.

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

       -i, --ignore-case
              Ignoruje rozróżnienia w wielkości liter we wzorcu oraz w plikach
              wejściowych.

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

       -l, --files-with-matches
              Wyłącza normalne wyjście; zamiast niego wypisuje  nazwę  każdego
              pliku,   z   którego   normalnie  wypisano  by  jakieś  wyjście.
              Przeszukiwanie zakończy się na pierwszej pasującej linii.

       --mmap Jeśli  to  możliwe,  do  odczytu  wejścia  korzysta  z   funkcji
              systemowej   mmap(2)   zamiast  domyślnej  read(2).   W  pewnych
              sytuacjach --mmap daje lepszą wydajność. Może jednak  spowodować
              niezdefiniowane  zachowanie  (łącznie  ze zrzutem rdzenia) jeśli
              podczas działania grep plik wejściowy się  skurczy  lub  wystąpi
              błąd wejścia/wyjścia.

       -n, --line-number
              Poprzedza  każdą  linię  wyjścia  numerem  linii z odpowiedniego
              pliku wejściowego.

       -q, --quiet, --silent
              Po cichu; wyłącza normalne wyjście.  Przeszukiwanie zakończy się
              na  pierwszej pasującej linii. Zobacz także poniżej opcje -s lub
              --no-messages.

       -r, --recursive
              Czyta wszystkie pliki pod każdym katalogiem, rekurencyjnie; jest
              to równoważne opcji -d recurse.

       -s, --no-messages
              Wyłącza  komunikaty  błędów o plikach nieistniejących lub nie do
              odczytania.  Uwaga o  przenośności:  w  przeciwieństwie  do  GNU
              grep,  tradycyjny  grep nie był zgodny z POSIX.2, gdyż brakowało
              mu opcji -q a opcja -s zachowywała się jak opcja -q z GNU  grep.
              Skrypty  powłoki,  które  mają  być przenośne na tradycyjny grep
              powinny  unikać  zarówno  -q,  jak   i   -s   i   zamiast   tego
              przekierowywać wyjście do /dev/null.

       -U, --binary
              Traktuje  plik  jako binarny.  Domyślnie, w DOS-ie i MS Windows,
              grep zgaduje typ pliku spoglądając na zawartość pierwszych 32 kB
              przeczytanych  z pliku.  Jeśli zdecyduje, że plik jest tekstowy,
              udziera znaki CR z oryginalnej  zawartości  pliku  (po  to  żeby
              wyrażenia  regularne  z  ^  i $ działały poprawnie).  Podanie -U
              wyłącza to zgadywanie, powodując, że wszystkie pliki są  czytane
              i  przekazywane  mechanizmowi  dopasowywującemu dosłownie; jeśli
              plik jest plikiem tekstowym  z  parami  CR/LF  na  końcu  linii,
              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.

       -u, --unix-byte-offsets
              Raportuje  offsety  bajtowe  w  stylu Unixowym.  Przełącznik ten
              powoduje, że grep raportuje offsety bajtowe tak, jakby plik  był
              plikiem  tekstowym  typu  Uniksowego, tj. z udartymi znakami CR.
              Da to rezultaty identyczne jak uruchomienie  grepa  na  maszynie
              Uniksowej.  Opcja ta nie wywołuje żadnego efektu, chyba że użyto
              także opcji -b; nie działa na platformach innych niż MS-DOS i MS
              Windows.

       -V, --version
              Wypisuje  numer  wersji grepa na standardowe wyjście błędów.  Ów
              numer wersji powinno się  załączać  we  wszystkich  zgłoszeniach
              błędów (patrz niżej).

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

       -w, --word-regexp
              Wybiera tylko te linie, w których dopasowania wzorca tworzą całe
              słowa.  Przeprowadzany  test  polega  na  tym,  że  dopasowywany
              podciąg  musi  albo  znajdować  się  na początku linii, albo być
              poprzedzony znakiem nie tworzącym słowa.   Podobnie,  musi  albo
              znajdować  się  na końcu linii, albo musi następować po nim znak
              nie tworzący słowa.  Znakami tworzącymi słowa są litery, cyfry i
              znak podkreślenia.

       -x, --line-regexp
              Wybiera  tylko  te  dopasowania, które dokładnie pasują do całej
              linii.

       -y     Przestarzały synonim -i.

       -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, znaku
              nowej  linii.   Opcja ta powoduje, że wyjście jest jednoznaczne,
              nawet przy nazwach plików zawierających niecodzienne znaki,  jak
              znak  nowej  linii.  Może być wykorzystywana z poleceniami typu:
              find -print0, perl  -0,  sort  -z  czy  xargs  -0,  umożliwiając
              przetwarzanie  plików  o  dowolych  nazwach, nawet zawierających
              znaki nowej linii.

WYRAŻENIA REGULARNE

       Wyrażenie regularne to wzorzec opisujący  zbiór  łańcuchów.   Wyrażenia
       regularne  są  zbudowane  analogicznie do wyrażeń arytmetycznych, przez
       zastosowanie do połączenia mniejszych wyrażeń rozmaitych operatorów.

       grep  rozumie  dwie   różne   wersje   składni   wyrażeń   regularnych:
       "podstawową"  i  "rozszerzoną".   W  GNU.B  grep  obie te składnie przy
       użyciu  nie  różnią  się  zakresem  dostępnych  możliwości.   W  innych
       implementacjach  podstawowe  wyrażenia  regularne są mniej rozbudowane.
       Poniższy opis stosuje się do rozszerzonych wyrażeń regularnych; różnice
       w stosunku do wyrażeń podstawowych podsumowano na końcu.

       Fundamentalnymi   "cegiełkami"   są  wyrażenia  regularne  pasujące  do
       pojedynczego znaku.  Większość znaków, w tym wszystkie litery i  cyfry,
       to  wyrażenia  regularne  pasujące  do  samych  siebie.  Każdy metaznak
       mający specjalne znaczenie może  być  cytowany  przez  poprzedzenie  go
       odwrotnym ukośnikiem.

       Lista  znaków zawarta między [ a ] pasuje do każdego pojedynczego znaku
       na tej liście; jeśli pierwszym znakiem  listy  jest  daszek  ^,  pasuje
       wtedy  ona  do  każdego  znaku  nie  znajdującego  się  na liście.  Dla
       przykładu,  wyrażenie   regularne   [0123456789]   pasuje   do   każdej
       pojedynczej  cyfry.   Zakres  znaków  ASCII podać można określając znak
       pierwszy i ostatni, oddzielone myślnikiem.  I na koniec: predefiniowano
       pewne  nazwane  klasy znaków.  Ich nazwy mówią same za siebie, i są to:
       [:alnum:],  [:alpha:],  [:cntrl:],  [:digit:],  [:graph:],   [:lower:],
       [:print:],   [:punct:],   [:space:],  [:upper:]  oraz  [:xdigit:].   Na
       przykład [[:alnum:]] oznacza [0-9A-Za-z], z tym wyjątkiem, że ta  druga
       forma  zależy  od  kodowania znaków ASCII i ustawień regionalnych POSIX
       (locale), podczas gdy pierwsza jest  przenośna.   (Zauważ,  ż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 list.
       Aby umieścić tam  dosłowny  ],  umieść  go  jako  pierwszy  na  liście.
       Podobnie,   aby  umieścić  dosłowny  ^,  umieść  go  gdziekolwiek  poza
       pierwszym miejscem.  W końcu, aby umieścić dosłowny  -,  umieść  go  na
       ostatku.

       Kropka  .   pasuje do każdego pojedynczego znaku.  Symbol \w to synonim
       [[:alnum:]] a \W to synonim [^[:alnum]].

       Daszek ^ oraz znak dolara $ są metaznakami, które pasują odpowiednio do
       łańcucha  pustego  na  początku  i  na końcu linii.  Symbole \< oraz \>
       pasują odpowiednio do łańcucha pustego na początku i  na  końcu  słowa.
       Symbol  \b  pasuje do łańcucha pustego na krawędzi słowa, zaś \B pasuje
       do pustego łańcucha zakładając, że nie jest on na krawędzi słowa.

       Po wyrażeniu  regularnym  może  następować  jeden  z  kilku  operatorów
       powtórzenia:
       ?      Poprzedzający  element  jest  opcjonalny i pasuje nie więcej niż
              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 jest opcjonalny i  pasuje  co  najwyżej  m
              razy.
       {n,m}  Poprzedzający  element pasuje co najmniej n razy, ale nie więcej
              niż m razy.

       Dwa wyrażenia regularne  można  ze  sobą  złączyć  (skonkatenować);  do
       wynikowego  wyrażenia  regularnego  pasuje  każdy  ciąg utworzony przez
       złączenie  dowolnych  dwóch  ciągów,  które   odpowiednio   pasują   do
       złączonych podwyrażeń.

       Dwa   wyrażenia   regularne   można   połączyć   operatorem  infiksowym
       (wrostkowym) |; do wynikowego wyrażenia regularnego pasuje dowolny ciąg
       pasujący do jednego bądź do drugiego z podwyrażeń.

       Powtarzanie  ma  priorytet nad łączeniem, które z kolei bierze górę nad
       alternatywą.  Całe wyrażenie regularne  można  ująć  w  nawiasy,  celem
       unieważnienia tych reguł priorytetowych.

       Wsteczne  odniesienie  \n,  gdzie  n  jest pojedynczą cyfrą, dopasowuje
       podciąg poprzednio dopasowany  n-tym  ujętym  w  nawiasy  podwyrażeniem
       wyrażenia regularnego.

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

       Tradycyjny  egrep nie traktuje { jako metaznaku. Niektóre implementacje
       udostępniają zamiast niego \{, więc przenośne skrypty powinny unikać  {
       we  wzorcach egrep, a do dopasowywania dosłownego znaku { stosować [{].

       GNU egrep usiłuje obsługiwać tradycyjny sposób użycia zakładając, że  {
       nie   posiada   szczególnego   znaczenia   jeśli  byłby  on  początkiem
       nieprawidłowego określenia liczby  powtórzeń.  Na  przykład,  polecenie
       powłoki  egrep  '{1'  szuka  dwuznakowego łańcucha {1, zamiast zgłaszać
       błąd  składni  w  wyrażeniu  regularnym.   POSIX.2  pozwala  na   takie
       zachowanie  jako  rozszerzenie standardu, ale przenośne skrypty powinny
       go unikać.

ZMIENNE ŚRODOWISKA

       GREP_OPTIONS
              Ta zmienna określa domyślne  opcje,  jakie  zostaną  umieszczone
              przed  wszystkimi  opcjami  podanymi wprost.  Na przykład, jeśli
              GREP_OPTIONS    jest     równe     '--binary-files=without-match
              --directories=skip',  to  grep  zachowa  się  tak,  jakby podano
              --binary-files=without-match    i    --directories=skip    przed
              ewentualnymi  jawnymi  opcjami.   Określenia  opcji oddziela się
              białymi znakami.  Odwrotny ukośnik cytuje następny  znak,  zatem
              można  go  wykorzystać  do podania opcji zawierającej biały znak
              lub odwrotny ukośnik.

       LC_ALL, LC_MESSAGES, LANG
              Te zmienne podają ustawienie  regionalne  (locale)  LC_MESSAGES,
              określające   język,   jakiego  grep  ma  użyć  w  komunikatach.
              Ustawienie  locale  jest  określane  przez   pierwszą   z   tych
              zmiennych,  która ma nadaną wartość.  Jeśli nie istnieje żadna z
              nich, to stosowana jest amerykańska odmiana angielskiego. Dzieje
              się  tak  również  w przypadku, gdy nie zainstalowano katalogu z
              komunikatami lub jeśli grep nie został  skompilowany  z  obsługą
              języków narodowych (NLS).

       LC_ALL, LC_CTYPE, LANG
              Te   zmienne  podają  ustawienie  regionalne  (locale)  LC_CTYPE
              określające typ znaków, np. które z  nich  są  białymi  znakami.
              Ustawienie   locale   jest   określane  przez  pierwszą  z  tych
              zmiennych, która ma nadaną wartość.  Jeśli nie istnieje żadna  z
              nich,  to  stosowane  jest  ustawienie  POSIX.   Dzieje  się tak
              również  w  przypadku,  gdy   nie   zainstalowano   katalogu   z
              komunikatami  lub  jeśli  grep nie został skompilowany z obsługą
              języków narodowych (NLS).

       POSIXLY_CORRECT
              Jeśli  jest  ustawiona,  to  grep  zachowuje   się   zgodnie   z
              wymaganiami  POSIX.2;  w  przeciwnym  razie  grep  zachowuje się
              bardziej jak inne programy GNU.  POSIX.2 żąda, 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.2 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_
              (Tu N jest numerycznym identyfikatorem procesu grepa).  Jeśli i-
              tym  znakiem  wartości  tej  zmiennej środowiska jest 1, to i-ty
              argument przekazany do grep 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 stąd nie
              powinny być traktowane jako opcje.  Zachowanie to jest  dostępne
              tylko  z  biblioteką  GNU  C  i  tylko  wtedy  gdy nie ustawiono
              POSIXLY_CORRECT.

DIAGNOSTYKA

       Normalnie status zakończenia równa się 0 jeśli znaleziono  dopasowania,
       a  1  jeśli  nie  znaleziono  żadnych.   Opcja  -v odwraca sens statusu
       zakończenia.  Status zakończenia równa  się  2  jeśli  wystąpiły  błędy
       składniowe  we  wzorcu,  niedostępne  pliki  wejściowe  lub  inne błędy
       systemowe.

BŁĘDY

       Zgłoszenia błędów wysyłaj, proszę, do  bug-gnu-utils@gnu.org.   Upewnij
       się, że gdzieś w polu tematu ("Subject:") umieściłeś słowo "grep".

       Duże  liczniki  powtórzeń  w konstrukcji {m,n} 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.

       Wsteczne odwołania są bardzo powolne i  mogą  wymagać  czasu  rosnącego
       wykładniczo.