Provided by: manpages-pl_4.13-4_all 

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⟩.
GNU grep 3.7 2019-12-29 GREP(1)