Name
grep, egrep, fgrep – print lines matching a pattern
Synopsis
grep PATTERN
grep
Description
grep przeszukuje nazwane pliki wejściowe FILE (lub standardowe wejście, jeśli nie podano nazwy plików, lub jeśli jako nazwę pliku podano pojedynczy myślnik-minus (-))) w poszukiwaniu wierszy zawierających dopasowanie do podanego PATTERN. Domyślnie, grep wypisuje pasujące linie.
Dodatkowo, dostępne są dwa warianty programów egrep i fgrep. egrep jest taki sam jak grep -E. fgrep jest taki sam jak grep -F. Bezpośrednie wywołanie jako egrep lub fgrep jest przestarzałe, ale zostało podane, aby umożliwić niezmodyfikowane działanie historycznych aplikacji, które na nich polegają.
Opcje
Ogólna informacja o programie
–help
Wypisuje komunikat użycia krótko podsumowujący te opcje wiersza poleceń i adres zgłaszania błędów, a następnie kończy pracę.
-V, –version Wypisuje numer wersji grepa na standardowe wyjście. Ten numer wersji powinien być dołączany do wszystkich raportów błędów (zobacz poniżej).
Wybór matek
-E, –extended-regexp Interpretuj PATTERN jako rozszerzone wyrażenie regularne (ERE, zobacz poniżej). (-E jest określone przez POSIX .) -F, –fixed-strings Interpretuj PATTERN jako listę stałych łańcuchów, oddzielonych znakami nowej linii, z których każdy ma być dopasowany. (-F jest określone przez POSIX.) -G, –basic-regexp Interpretuj PATTERN jako podstawowe wyrażenie regularne (BRE, zobacz poniżej). Jest to wartość domyślna. -P, –perl-regexp Interpretuje PATTERN jako wyrażenie regularne Perla. Jest to wysoce eksperymentalne i grep -P może ostrzegać o niezaimplementowanych funkcjach.
Kontrola dopasowywania
-e PATTERN, –regexp=PATTERN Użyj PATTERN jako wzorca. Może to być użyte do określenia wielu wzorców szukania lub do ochrony wzorca zaczynającego się od myślnika (-).(-e jest określone przez POSIX .) -f FILE, –file=FILE Uzyskuje wzorce z pliku FILE, po jednym na wiersz. Pusty plik zawiera zero wzorców, a zatem nie pasuje do niczego. (-f jest określone przezPOSIX .) -i, –ignore-case Ignoruje rozróżnianie wielkości liter zarówno w PATTERN jak i w plikach wejściowych. (-i jest określone przez POSIX .) -v, –invert-match Odwraca sens dopasowywania, aby wybierać linie niedopasowane. (-v jest określone przez POSIX .) -w, –word-regexp Wybiera tylko te wiersze, które zawierają dopasowania tworzące całe słowa. Test polega na tym, że pasujący podłańcuch musi być albo na początku linii, albo poprzedzony znakiem składowym niebędącym słowem. Podobnie, musi być albo na końcu wiersza, albo po nim znak składowy niebędący słowem. Znaki składowe słowa to litery, cyfry i podkreślnik. -x, –line-regexp Wybiera tylko te dopasowania, które dokładnie pasują do całej linii. (-x jest określone przez POSIX .) -y
Przestarzały synonim dla -i.
Ogólna kontrola wyjścia
-c, –count Wyłącz normalne wyjście; zamiast tego wypisz liczbę pasujących linii dla każdego pliku wejściowego. Z opcją -v, –invert-match (zobacz poniżej), zlicza linie niedopasowane. (-c jest określone przez POSIX .) –color, –colour Otocz dopasowane (niepuste) łańcuchy, pasujące linie, linie kontekstowe, nazwy plików, numery linii, przesunięcia bajtów i separatory (dla pól i grup linii kontekstowych) sekwencjami ucieczki, aby wyświetlić je w kolorze na terminalu. Kolory definiowane są przez zmienną środowiskową GREP_COLORS. Przestarzała zmienna środowiskowa GREP_COLOR jest nadal obsługiwana, lecz jej ustawienie nie ma pierwszeństwa. WHEN to never, always, lubrauto. -L, –files-without-match Wyłącza normalne wyjście; zamiast tego wypisuje nazwę każdego pliku wejściowego, z którego normalnie nie zostałoby wypisane żadne wyjście. Skanowanie zatrzyma się na pierwszym znalezionym pliku. -l, –files-with-matches Wyłącz normalne wyjście; zamiast tego wypisz nazwę każdego pliku wejściowego, z którego normalnie zostałoby wypisane wyjście. Skanowanie zostanie zatrzymane po pierwszym dopasowaniu. (-l jest określone przez POSIX .) -m NUM, –max-count=NUM Zatrzymaj czytanie pliku po NUM pasujących liniach. Jeżeli wejściem jest standardowe wejście z pliku regularnego, a na wyjściu jest NUM pasujących linii, grep zapewnia, że standardowe wejście zostanie ustawione tuż za ostatnią pasującą linią przed zakończeniem pracy, bez względu na obecność powracających linii kontekstowych. Umożliwia to procesowi wywołującemu wznowienie szukania. Gdy grep zatrzymuje się po NUM pasujących wierszach, wypisuje wszystkie powracające linie kontekstowe. Gdy użyto również opcji -c lub –count, grep nie wypisuje licznika większego niż NUM. Gdy użyto również opcji -v lub –invert-match, grep zatrzymuje się po wypisaniu NUM niepasujących linii. -o, –only-matching Wypisuje tylko dopasowane (niepuste) części pasującej linii, z każdą taką częścią na osobnej linii wyjściowej. -q, –quiet, –silent Wyciszanie; nie zapisuj niczego na standardowe wyjście. Kończy pracę natychmiast z zerowym kodem jeśli znaleziono jakiekolwiek dopasowanie, nawet jeśli wykryto błąd. Zobacz też opcję-s lub –no-messages. (-q jest określone przez POSIX .) -s, –no-messages Usuwa komunikaty o błędach dotyczące nieistniejących lub nieczytelnych plików. Uwaga o przenośności: w przeciwieństwie do grep GNU, grep Unixa 7. edycji nie był zgodny z POSIX-em, ponieważ nie posiadał opcji -q, a jego opcja -s zachowywała się jak opcja -q grep GNU. Skrypty powłoki przenośnej powinny unikać zarówno -q jak i -s, a zamiast tego powinny przekierowywać standardowe i błędne wyjście na /dev/null. (-s jest określone przez POSIX.)
Kontrola prefiksu linii wyjściowej
-b, –byte-offset Wypisuje offset bajtowy o podstawie 0 w pliku wejściowym przed każdym wierszem wyjścia. Jeśli podano -o (–only-matching), wypisuje offset samej części dopasowującej. -H, –with-filename Wypisuje nazwę pliku dla każdego dopasowania. Jest to wartość domyślna, gdy istnieje więcej niż jeden plik do przeszukania. -h, –no-filename Wyłącza prefiksowanie nazw plików na wyjściu. Jest to wartość domyślna, gdy do przeszukania jest tylko jeden plik (lub tylko standardowe wejście). –label=LABEL Wyświetla wejście faktycznie pochodzące ze standardowego wejścia jako wejście z pliku LABEL. Jest to szczególnie przydatne przy stosowaniu narzędzi takich jakezgrep, np. gzip -cd foo.gz | grep –label=foo -H something. Zobacz też opcję -H. -n, –line-number Przedrostkiem każdego wiersza wyjścia jest numer wiersza w pliku wejściowym, liczony od 1. (-n jest określone przez POSIX .) -T, –initial-tab Upewnia się, że pierwszy znak aktualnej zawartości linii leży na tabulaturze, tak że wyrównanie tabulatorów wygląda normalnie. Jest to przydatne z opcjami, które odnoszą swoje wyjście do rzeczywistej zawartości: -H,-n, i -b. Aby zwiększyć prawdopodobieństwo, że linie z jednego pliku będą się zaczynały w tej samej kolumnie, powoduje to również, że numer linii i offset bajtowy (jeśli występują) są wypisywane w polu o minimalnej szerokości. -u, –unix-byte-offsets Zgłasza offset bajtowy w stylu uniksowym. Przełącznik ten powoduje, że grep wypisuje offsety bajtów tak, jakby plik był plikiem tekstowym w stylu uniksowym, tj. z usuniętymi znakami CR. Da to wyniki identyczne z uruchomieniem grepa na maszynie uniksowej. Opcja ta nie działa, chyba że użyto również opcji -b; nie działa ona na platformach innych niż MS-DOS i MS -Windows. -Z, –null Wyprowadza bajt zerowy (znak ASCII NUL) zamiast znaku, który normalnie występuje po nazwie pliku. Na przykład, grep -lZout wypisuje bajt zerowy po każdej nazwie pliku zamiast zwykłej nowej linii. Opcja ta czyni wyjście jednoznacznym, nawet w obecności nazw plików zawierających nietypowe znaki, takie jak nowe linie. Opcji tej można używać z poleceniami takimi jak find -print0, perl -0, sort -z i xargs -0 do przetwarzania dowolnych nazw plików, nawet tych, które zawierają znaki nowej linii.
Kontekstowa kontrola linii
-A NUM, –after-context=NUM Drukuje NUM linii kontekstu po pasujących liniach. Umieszcza linię zawierającą separator grupy (–) pomiędzy sąsiadującymi grupami dopasowań. Z opcją -o lub –only-matching, nie ma to żadnego efektu i podawane jest ostrzeżenie. -B NUM, –before-context=NUM Drukuje NUM linii wiodącego kontekstu przed liniami dopasowań. Umieszcza linię zawierającą separator grup (–) pomiędzy sąsiednimi grupami dopasowań. Z opcją -o lub –only-matching, nie ma to żadnego efektu i podawane jest ostrzeżenie. -C NUM, -NUM, –context=NUM Drukuje NUM wierszy kontekstu wyjściowego. Umieszcza linię zawierającą separator grup (–) pomiędzy sąsiednimi grupami dopasowań. Z opcją -o lub –only-matching, nie ma to żadnego efektu i podawane jest ostrzeżenie.
Wybór plików i katalogów
-a, –text Przetwarzaj plik binarny tak, jakby był tekstem; jest to równoważne opcji –binary-files=text. –binary-files=TYPE Jeżeli pierwsze kilka bajtów pliku wskazuje, że zawiera on dane binarne, przyjmij, że plik jest typu TYPE. Domyślnie TYP jest binarny, a grep normalnie wypisuje albo jednowierszowy komunikat mówiący, że plik binarny pasuje, albo brak komunikatu, jeśli nie ma dopasowania. Jeśli TYPE jest bez dopasowania, grep przyjmuje, że plik binarny nie pasuje; jest to równoważne opcji -I. Jeżeli TYPE jest tekstem, grep przetwarza plik binarny tak, jakby był tekstem; jest to równoważne opcji -a. Ostrzeżenie: grep –binary-files=text może wypisać binarne śmieci, co może mieć paskudne efekty uboczne, jeśli wyjściem jest terminal i jeśli sterownik terminala interpretuje niektóre z nich jako polecenia. -D ACTION, –devices=ACTION Jeśli plik wejściowy jest urządzeniem, FIFO lub gniazdem, to do jego przetwarzania użyj ACTION. Domyślnie, ACTION jest read, co oznacza, że urządzenia są odczytywane tak, jakby były zwykłymi plikami. Jeśli ACTION jest pomijane, urządzenia są bezgłośnie pomijane. -d ACTION, –directories=ACTION Jeśli plik wejściowy jest katalogiem, do jego przetworzenia użyj ACTION. Domyślnie, ACTION jest read, co oznacza, że katalogi czytane są tak, jakby były zwykłymi plikami. Jeśli ACTION jest skip, katalogi są bezgłośnie pomijane. Jeśli ACTION jest recurse, grep czyta rekursywnie wszystkie pliki pod każdym katalogiem; jest to równoważne opcji -r. –exclude=GLOB Pomija pliki, których nazwa podstawowa pasuje do GLOB (używając dopasowania wieloznacznego). W nazwie pliku glob może używać *, ?, i jako znaków wieloznacznych, a także dosłownie cytować znak wieloznaczny lub odwrotny ukośnik. –exclude-from=FILE Pomija pliki, których nazwa bazowa pasuje do któregoś z globali nazw plików odczytanych z FILE (używając dopasowania wieloznacznego, jak opisano w –exclude). –exclude-dir=DIR Wyklucza katalogi pasujące do wzorca DIR z wyszukiwań rekursywnych. -I
Przetwarza plik binarny tak, jakby nie zawierał pasujących danych; jest to równoważne opcji –binary-files=without-match.
–include=GLOB Wyszukuje tylko pliki, których nazwa podstawowa pasuje do GLOB (używając dopasowywania wieloznacznego, jak opisano w –exclude). -R, -r, –recursive Odczytaj rekursywnie wszystkie pliki w każdym katalogu; jest to równoważne opcji -d recurse.
Inne opcje
–line-buffered Użyj buforowania linii na wyjściu. Może to spowodować spadek wydajności. –mmap
Jeśli to możliwe, użyj systemowego wywołania mmap(2) do odczytu danych wejściowych, zamiast domyślnego wywołania systemowego read(2). W niektórych sytuacjach, –mmap daje lepszą wydajność. Jednakże, –mmap może spowodować niezdefiniowane zachowanie (włączając zrzuty rdzenia), jeśli plik wejściowy skurczy się podczas działania grepa, lub jeśli wystąpi błąd wejścia/wyjścia.
-U, –binary Traktuj plik(i) jako binarne. Domyślnie, pod MS-DOS i MS -Windows, grep zgaduje typ pliku, patrząc na zawartość pierwszych 32 KB odczytanych z pliku. Jeśli grep uzna, że plik jest plikiem tekstowym, usuwa znaki CR z oryginalnej zawartości pliku (aby wyrażenia regularne z ^ i $ działały poprawnie). Podanie opcji -U unieważnia tę zgadywankę, powodując, że wszystkie pliki są odczytywane i przekazywane do mechanizmu dopasowującego dosłownie; jeśli plik jest plikiem tekstowym z parami CR/LF na końcu każdej linii, spowoduje to niepowodzenie niektórych wyrażeń regularnych. Opcja ta nie ma wpływu na platformy inne niż MS-DOS i MS -Windows. -z, –null-data Traktuj wejście jako zestaw linii, z których każda zakończona jest bajtem zerowym (znak ASCII NUL) zamiast nowej linii. Podobnie jak opcja -Z lub –null, opcji tej można używać z poleceniami takimi jak sort -z do przetwarzania dowolnych nazw plików.
Wyrażenia regularne
Wyrażenie regularne to wzorzec opisujący zbiór łańcuchów. Wyrażenia regularne są konstruowane analogicznie do wyrażeń arytmetycznych, przez użycie różnych operatorów do łączenia mniejszych wyrażeń.
grep rozumie trzy różne wersje składni wyrażeń regularnych: „podstawową”, „rozszerzoną” i „perlową”. W GNU grep, nie ma różnicy w dostępnej funkcjonalności pomiędzy składnią podstawową i rozszerzoną. W innych implementacjach, podstawowe wyrażenia regularne mają mniejsze możliwości. Poniższy opis odnosi się do rozszerzonych wyrażeń regularnych; różnice dla podstawowych wyrażeń regularnych są podsumowane później. Wyrażenia regularne Perla dają dodatkową funkcjonalność i są udokumentowane w pcresyntax(3) i pcrepattern(3), ale mogą nie być dostępne w każdym systemie.
Podstawowymi blokami konstrukcyjnymi są wyrażenia regularne dopasowujące pojedynczy znak. Większość znaków, w tym wszystkie litery i cyfry, to wyrażenia regularne, które pasują same do siebie. Każdy metaznak o specjalnym znaczeniu może być cytowany przez poprzedzenie go odwrotnym ukośnikiem.
Kropka . pasuje do każdego pojedynczego znaku.
Klasy znaków i wyrażenia nawiasowe
Wyrażenie nawiasowe jest listą znaków zamkniętą przez . Dopasowuje ono dowolny pojedynczy znak z tej listy; jeśli pierwszym znakiem listy jest caret ^, to dopasowuje ono dowolny znak nie znajdujący się na liście. Na przykład, wyrażenie regularne pasuje do każdej pojedynczej cyfry.
Wewnątrz wyrażenia nawiasowego, wyrażenie zakresu składa się z dwóch znaków oddzielonych myślnikiem. Dopasowuje ono dowolny pojedynczy znak, który sortuje pomiędzy tymi dwoma znakami, włącznie, używając sekwencji kolokacji i zestawu znaków locale. Na przykład, w domyślnych ustawieniach locale C, jest równoważne. Wiele locale sortuje znaki w porządku słownikowym, i w tych locale zazwyczaj nie jest równoważne ; może być równoważne , na przykład. Aby uzyskać tradycyjną interpretację wyrażeń nawiasowych, można użyć locale C, ustawiając zmienną środowiskowąLC_ALL na wartość C.
Wreszcie, pewne nazwane klasy znaków są predefiniowane wewnątrz wyrażeń nawiasowych, jak poniżej. Ich nazwy nie wymagają wyjaśnień, a są to: , , , , , , , , , , , , oraz . Na przykład, ] oznacza , z tym że ta druga forma zależy od locale i kodowania znaków ASCII, podczas gdy pierwsza jest niezależna od locale i zestawu znaków. (Zauważ, że nawiasy w tych nazwach klas są częścią nazw symbolicznych i muszą być dołączone do nawiasów ograniczających wyrażenie nawiasowe). Większość metaznaków traci swe specjalne znaczenie wewnątrz wyrażeń nawiasowych. Aby dołączyć dosłowne ], umieść je na początku listy. Podobnie, aby dołączyć dosłowne ^, umieść je wszędzie, byle nie na początku. Wreszcie, aby dołączyć dosłowne – umieść je na końcu.
Anchoring
Dozownik ^ i znak dolara $ są metaznakami, które odpowiednio dopasowują pusty łańcuch na początku i końcu wiersza.
Znak odwrotnego ukośnika i wyrażenia specjalne
Symbole ^< i ^> odpowiednio dopasowują pusty łańcuch na początku i końcu słowa. Symbol \b pasuje do pustego łańcucha na krawędzi słowa, a \b pasuje do pustego łańcucha pod warunkiem, że nie znajduje się on na krawędzi słowa. Symbol \w jest synonimem dla], a \W jest synonimem dla ].
Repetycja
Po wyrażeniu regularnym może następować jeden z kilku operatorów powtórzeń: ?
Poprzedni element jest opcjonalny i dopasowywany co najwyżej raz.
*
Poprzedni element będzie dopasowywany zero lub więcej razy.
+
Poprzedni element będzie dopasowywany jeden lub więcej razy.
{n}
Poprzedni element jest dopasowywany dokładnie n razy.
{n,}
Poprzedni element jest dopasowywany n lub więcej razy.
{,m}
Poprzedni element jest dopasowywany co najwyżej m razy.
{n,m}
Poprzedni element jest dopasowywany co najmniej n razy, ale nie więcej niż m razy.
Konkatenacja
Dwa wyrażenia regularne mogą być konkatenowane; wynikowe wyrażenie regularne pasuje do dowolnego łańcucha utworzonego przez konkatenację dwóch podłańcuchów, które odpowiadają konkatenowanym wyrażeniom.
Alternacja
Dwa wyrażenia regularne mogą być połączone operatorem infiksowym |; wynikowe wyrażenie regularne pasuje do każdego łańcucha pasującego do któregokolwiek z alternatywnych wyrażeń.
Precedencja
Powtórzenie ma pierwszeństwo przed konkatenacją, która z kolei ma pierwszeństwo przed alternacją. Całe wyrażenie może być ujęte w nawiasy, by zignorować te reguły pierwszeństwa i utworzyć podwyrażenie.
Odniesienia wsteczne i podwyrażenia
Odniesienie wsteczne n, gdzie n jest pojedynczą cyfrą, odpowiada podłańcuchowi poprzednio dopasowanemu przez n-te nawiasowe wyrażenie regularne.
Podstawowe a rozszerzone wyrażenia regularne
W podstawowych wyrażeniach regularnych metaznaki ?, +, {, |, (, i ) tracą swoje specjalne znaczenie; zamiast nich należy używać wersji z odwrotną kreską: ?, +, {, |, (, i ).
Tradycyjny egrep nie obsługuje metaznaku {, a niektóre implementacje egrep obsługują zamiast niego {, więc skrypty przenośne powinny unikać { we wzorcach grep -E i powinny używać do dopasowywania dosłownego {.
GNU grep -E próbuje wspierać tradycyjne użycie przez założenie, że { nie jest specjalne, jeśli byłoby początkiem niepoprawnej specyfikacji przedziału czasu. Na przykład, polecenie grep -E '{1′ szuka dwuznakowego łańcucha {1 zamiast zgłaszać błąd składni w wyrażeniu regularnym. POSIX.2 dopuszcza takie zachowanie jako rozszerzenie, ale skrypty przenośne powinny go unikać.
Zmienne środowiskowe
Na zachowanie grepa mają wpływ następujące zmienne środowiskowe.
Lokalność dla kategorii LC_foo jest określana przez zbadanie trzech zmiennych środowiskowych 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 ustawione, ale LC_MESSAGES jest ustawione napt_BR, to dla kategorii LC_MESSAGES używane jest locale brazylijskiego portugalskiego. Jeśli nie ustawiono żadnej z tych zmiennych środowiskowych, jeśli nie zainstalowano katalogu locale lub jeśli grep nie został skompilowany z obsługą języków narodowych ( NLS ), używane jest locale C.
GREP_OPTIONS Ta zmienna określa opcje domyślne, umieszczane przed opcjami jawnymi. Na przykład, jeśli GREP_OPTIONS jest ’–binary-files=without-match –directories=skip’, grep zachowuje się tak, jakby dwie opcje –binary-files=without-match i–directories=skip podano przed opcjami jawnymi. Specyfikacje opcji oddzielane są białymi spacjami. Odwrotny ukośnik wymyka następny znak, więc można go użyć do określenia opcji zawierającej białe znaki lub odwrotny ukośnik. GREP_COLOR Ta zmienna określa kolor używany do podświetlania dopasowanego (niepustego) tekstu. Jest przestarzała na rzecz GREP_COLORS, ale wciąż obsługiwana. Pierwszeństwo przed nią mają właściwości Themt, ms i mc funkcji GREP_COLORS. Może określać tylko kolor używany do podświetlania pasującego, niepustego tekstu w dowolnym pasującym wierszu (wybranym wierszu, gdy pominięto opcję wiersza poleceń -v, lub wierszu kontekstowym, gdy podano -v). Domyślnie jest to 01;31, co oznacza pogrubiony czerwony tekst na pierwszym planie na domyślnym tle terminala. GREP_COLORS Określa kolory i inne atrybuty używane do wyróżniania różnych części wyjścia. Jego wartością jest rozdzielona dwukropkami lista właściwości, domyślnie ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 z pominiętymi właściwościami booleańskimi rv i ne (tj. false). Obsługiwane możliwości są następujące. sl=
SGR podciąg dla całych wybranych linii (tj. pasujących linii, gdy pominięto opcję -v wiersza poleceń, lub niepasujących linii, gdy podano -v). Jeśli jednak podano właściwość boolean rv i opcję wiersza poleceń -v, to odnosi się ona do pasujących linii kontekstu. Domyślnie jest pusta (tj. domyślna para kolorów terminala).
cx=
SGR podłańcuch dla całych linii kontekstu (tj. linii niedopasowanych gdy pominięto opcję wiersza poleceń -v, lub pasujących gdy podano -v). Jeśli jednak podano zarówno właściwość logiczną rv jak i opcję -v wiersza poleceń, to stosuje się ona do wybranych, niepasujących linii. Domyślnie jest pusta (tj. domyślna para kolorów terminala).
rv
Wartość logiczna odwracająca (zamieniająca) znaczenia właściwości sl= i cx= gdy podana jest opcja wiersza poleceń -v. Domyślnie jest to fałsz (tj. właściwość jest pomijana).
mt=01;31
SGR podłańcuch do dopasowywania niepustego tekstu w dowolnym pasującym wierszu (tj. wybranym wierszu, gdy pominięto opcję wiersza poleceń -v, lub wierszu kontekstowym, gdy podano -v). Ustawienie tego jest równoważne jednoczesnemu ustawieniu obu ms= i mc= na tę samą wartość. Domyślnie, tekst jest pogrubiany na czerwono na tle bieżącego wiersza.
ms=01;31
SGR podłańcuch do dopasowywania niepustego tekstu w wybranym wierszu. (Jest to używane tylko wtedy, gdy pominięto opcję wiersza poleceń -v.) Efekt właściwościsl= (lub cx= jeśli rv) pozostaje aktywny, gdy to zadziała. Domyślnym jest pogrubiony czerwony tekst na pierwszym planie nad bieżącym tłem linii.
mc=01;31
SGR podłańcuch dla dopasowywania niepustego tekstu w linii kontekstowej. (Jest to używane tylko wtedy, gdy podano opcję wiersza poleceń -v.) Efekt właściwościcx= (lub sl= jeśli rv) pozostaje aktywny, gdy to zadziała. Domyślnie jest to pogrubiony czerwony tekst na pierwszym planie nad bieżącym tłem linii.
fn=35
SGR podłańcuch dla nazw plików poprzedzających dowolny wiersz zawartości. Domyślnie jest to magenta text foreground nad domyślnym tłem terminala.
ln=32
SGR substring dla numerów linii poprzedzających dowolną linię zawartości. Domyślnie jest to zielony tekst na pierwszym planie nad domyślnym tłem terminala.
bn=32
SGR podłańcuch dla offsetów bajtów poprzedzających dowolną linię zawartości. Domyślnie jest to zielony tekst nad domyślnym tłem terminala.
se=36
SGR podłańcuch separatorów, wstawianych między wybrane pola linii (:), między pola linii kontekstowych (-) i między grupy sąsiednich linii, gdy podano niezerowy kontekst (–). Domyślnym ustawieniem jest cyjanowy tekst na pierwszym planie nad domyślnym tłem terminala.
ne
Wartość logiczna, która zapobiega kasowaniu do końca linii przy użyciu Erase in Line (EL) to Right (\33). LC_ALL, LC_CTYPE, LANG Zmienne te określają locale dla kategorii LC_CTYPE, która określa typ znaków, np. które znaki są białymi spacjami. LC_ALL, LC_MESSAGES, LANG Zmienne te określają locale dla kategorii LC_MESSAGES, określającej język, jakiego grep używa dla komunikatów. Domyślne Clocale używa komunikatów w amerykańskim angielskim. POSIXLY_CORRECT Jeśli jest ustawiona, grep zachowuje się tak, jak wymaga tego POSIX.2; w przeciwnym razie, grep zachowuje się bardziej jak inne programy GNU.POSIX.2 wymaga, by opcje, które następują po nazwach plików, były traktowane jak nazwy plików; domyślnie, opcje takie przesuwają się na początek listyoperand i są traktowane jak opcje. POSIX.2 wymaga też, by nierozpoznane opcje były diagnozowane jako „nielegalne”, ale ponieważ nie są one tak naprawdę sprzeczne z prawem, domyślnie diagnozuje się je jako „nieważne”. 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 grep’a.) Jeśli i-ty znak wartości tej zmiennej środowiskowej wynosi 1, to nie uważaj i-tego operandu grep’a za opcję, nawet jeśli na taką wygląda. Powłoka może umieścić tę zmienną w środowisku dla każdego uruchamianego polecenia, określając, które operandy są wynikami interpretacji symboli wieloznacznych 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 jest ustawione POSIXLY_CORRECT.
Kod zakończenia
Normalnie, kod zakończenia wynosi 0 jeśli znaleziono wybrane linie i 1 w przeciwnym przypadku. Ale kodem zakończenia jest 2 jeśli wystąpił błąd, chyba że użyto opcji -q lub –quiet lub –silent i znaleziono wybrany wiersz. Zauważ jednak, że POSIX nakazuje jedynie, dla programów takich jakgrep, cmp i diff, aby kod zakończenia w przypadku błędu był większy niż 1; dlatego zaleca się, ze względu na przenośność, stosowanie logiki testującej ten ogólny warunek zamiast ścisłej równości z 2.
Copyright
Copyright 1998-2000, 2002, 2005-2010 Free Software Foundation, Inc.
To jest wolne oprogramowanie; zobacz źródło dla warunków kopiowania. Nie ma ŻADNEJ gwarancji; nawet na PRZYDATNOŚĆ HANDLOWĄ lub PRZYDATNOŚĆ DO OKREŚLONEGO CELU.
Błędy
Zgłaszanie błędów
Zgłoszenia błędów przez e-mail na adres <[email protected]>, listę dyskusyjną, której strona internetowa to <http://lists.gnu.org/mailman/listinfo/bug-grep>.grep’s Savannah bug tracker znajduje się pod adresem <http://savannah.gnu.org/bugs/?group=grep>.
Znane błędy
Duża liczba powtórzeń w konstrukcji {n,m} może powodować, że grep zużywa dużo pamięci. W dodatku, pewne inne wyrażenia regularne wymagają wykładniczego czasu i miejsca i mogą spowodować, że grepowi zabraknie pamięci.
Odniesienia wstecz są bardzo powolne i mogą wymagać wykładniczego czasu.
Zobacz także
Regularne strony podręcznika
awk(1), cmp(1), diff(1), find(1), gzip(1), perl(1), sed(1), sort(1), xargs(1), zgrep(1), mmap(2), read(2), pcre(3), pcresyntax(3), pcrepattern(3),terminfo(5), glob(7), regex(7).
POSIX Programmer’s Manual Page
grep(1p).
Dokumentacja TeXinfo
Pełna dokumentacja dla grep jest utrzymywana jako podręcznik TeXinfo. Jeśli programy info i grep są poprawnie zainstalowane w twoim miejscu, polecenie info grep powinno dać ci dostęp do kompletnego podręcznika.
Przypisy
GNU 's not Unix, but Unix is a beast; its plural form is Unixen.
.