grep, egrep, fgrep, rgrep - wypisuje wiersze pasujące do
wzorca
grep [OPCJA...] WZORCE [PLIK...]
grep [OPCJA...] -e WZORCE ... [PLIK...]
grep [OPCJA...] -f PLIK_WZORCOWY ...
[PLIK...]
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 also includes the variant programs egrep,
fgrep and rgrep. These programs are the same as
grep -E, grep -F, and grep -r,
respectively. These variants are deprecated upstream, but Debian provides
for backward compatibility. For portability reasons, it is recommended to
avoid the variant programs, and use grep with the related option
instead.
- --help
- Wyświetla komunikat pomocy i wychodzi.
- -V, --version
- Wyświetla numer wersji grep i wychodzi.
- -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
- Interpret PATTERNS as Perl-compatible regular expressions (PCREs).
This option is experimental when combined with the -z
(--null-data) option, and grep -P may warn of unimplemented
features.
- -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 $.
- -c, --count
- Suppress normal output; instead print a count of matching lines for each
input file. With the -v, --invert-match option (see above),
count non-matching lines.
- --color[=KIEDY],
--colour[=KIEDY]
- Surround the matched (non-empty) strings, matching lines, context lines,
file names, line numbers, byte offsets, and separators (for fields and
groups of context lines) with escape sequences to display them in color on
the terminal. The colors are defined by the environment variable
GREP_COLORS. WHEN is never, always, or
auto.
- -L,
--files-without-match
- Wyłącza normalne wyjście, zamiast niego wypisuje
nazwę każdego pliku, z którego normalnie nie wypisano
by żadnego wyniku.
- -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
- Stop reading a file after NUM matching lines. If NUM is
zero, grep stops right away without reading input. A NUM of
-1 is treated as infinity and grep does not stop; this is the
default. If the input is standard input from a regular file, and
NUM matching lines are output, grep ensures that the
standard input is positioned to just after the last matching line before
exiting, regardless of the presence of trailing context lines. This
enables a calling process to resume a search. When grep stops after
NUM matching lines, it outputs any trailing context lines. When the
-c or --count option is also used, grep does not
output a count greater than NUM. When the -v or
--invert-match option is also used, grep stops after
outputting NUM non-matching lines.
- -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.
- -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.
- -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.
- -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.
- By default, TYPE is binary, and grep suppresses
output after null input binary data is discovered, and suppresses output
lines that contain improperly encoded data. When some output is
suppressed, grep follows any output with a message to standard
error saying that a binary file matches.
- 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
- Read all files under each directory, recursively, following symbolic links
only if they are on the command line. Note that if no file operand is
given, grep searches the working directory. This is equivalent to
the -d recurse option.
- -R,
--dereference-recursive
- Czyta rekurencyjnie wszystkie pliki pod każdym katalogiem.
Podąża za każdym dowiązaniem symbolicznym, w
odróżnieniu od -r.
- --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ż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.
grep understands three different versions of regular
expression syntax: “basic” (BRE), “extended”
(ERE) and “perl” (PCRE). In GNU grep there is no
difference in available functionality between basic and extended syntax. In
other implementations, basic regular expressions are less powerful. The
following description applies to extended regular expressions; differences
for basic regular expressions are summarized afterwards. Perl-compatible
regular expressions give additional functionality, and are documented in
pcre2syntax(3) and pcre2pattern(3), but work only if PCRE
support is enabled.
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.
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.
Znak daszka ^ i dolara $ są metaznakami,
które pasują odpowiednio do łańcucha pustego na
początku i końcu wiersza.
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:]].
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.
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ń.
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ń.
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ł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.
W podstawowych wyrażeniach regularnych metaznaki ?,
+, {, |, ( i ) tracą swoje
szczególne znaczenie; zamiast nich należy używać
wersji z odwrotnym ukośnikiem: \?, \+, \{,
\|, \( oraz \).
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
- Controls how the --color option highlights output. Its value is a
colon-separated list of capabilities that defaults to
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 with the
rv and ne boolean capabilities omitted (i.e., false).
Supported capabilities are as follows.
- 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.
Niniejsza strona podręcznika jest utrzymywana jedynie
częściowo - pełna dokumentacja jest często
aktualniejsza.
Copyright 1998-2000, 2002, 2005-2022 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.
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⟩
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 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.
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)
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.
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⟩.