1 .\" T³umaczenie: Gwidon S. Naskrent (naskrent@hoth.amu.edu.pl), IX 1998
2 .\" {PTM/GSN/0.5/23-02-1999/"wypisz linie pasuj±ce do wzorca"}
3 .TH grep 1 "26 wrzesieñ 1998" "GNU Project"
5 grep, egrep, fgrep \- wypisz linie pasuj±ce do wzorca
8 [-[AB] NUM] [-CEFGVbchiLlnqsvwxyUu] [-e WZÓR | -f PLIK]
9 [--extended-regexp] [--fixed-strings] [--basic-regexp]
10 [--regexp=WZÓR] [--file=PLIK] [--ignore-case] [--word-regexp]
11 [--line-regexp] [--line-regexp] [--no-messages] [--revert-match]
12 [--version] [--help] [--byte-offset] [--line-number]
13 [--with-filename] [--no-filename] [--quiet] [--silent]
14 [--files-without-match] [--files-with-matcces] [--count]
15 [--before-context=NUM] [--after-context=NUM] [--context]
16 [--binary] [--unix-byte-offsets]
21 przeszukuje nazwane pliki wej¶ciowe (lub standardowe wej¶cie je¶li
22 nie podano ¿adnych, lub podano nazwê pliku '\-'), szukaj±c linii
23 zawieraj±cych co¶ pasuj±cego do podanego wzoru. Domy¶lnie,
25 wypisuje linie pasuj±ce.
27 Istniej± trzy g³ówne warianty
29 kontrolowane przez nastêpuj±ce opcje:
32 .B \-G, --basic-regexp
35 jako podstawowe wyra¿enie regularne (zobacz ni¿ej). Jest to zachowanie
38 .B \-E, --extended-regexp
41 jako rozszerzone wyra¿enie regularne (patrz ni¿ej).
43 .B \-F, --fixed-strings
46 jako listê ³añcuchów o sta³ej d³ugo¶ci, oddzielonych znakami nowej
47 linii, które nale¿y dopasowaæ ka¿dy z osobna.
49 Dodatkowo dostêpne s± dwa programy wariantowe
54 jest podobny (ale nie identyczny) do
56 i jest kompatybilny z historycznym
66 rozumiej± nastêpuj±ce opcje:
70 Pasuj±ce linie zostan± wypisane z
72 linii poprzedzaj±cego i nastêpuj±cego kontekstu.
74 jednak nie wypisze ¿adnej linii wiêcej ni¿ jeden raz.
76 .BI \-A " NUM" ", --after-context=" NUM
79 linii nastêpuj±cego kontekstu po pasuj±cych liniach.
81 .BI \-B " NUM" ", --before-context=" NUM
84 linii poprzedzaj±cego kontekstu przed pasuj±cymi liniami.
93 na standardowy b³±d. Ów numer wersji powinien zostaæ za³±czony do
94 wszystkich raportów o b³êdach (patrz ni¿ej).
97 Wypisz offset bajtowy w pliku wej¶ciowym przed ka¿d± lini± wyj¶cia.
100 Wy³±cz normalne wyj¶cie; zamiast niego wypisuj liczbê pasuj±cych linii
101 dla ka¿dego pliku wej¶ciowego.
103 .B \-v, --revert-match
104 (patrz ni¿ej), policz linie niepasuj±ce.
106 .BI \-e " WZÓR" ", --regexp=" WZÓR
109 jako wzoru; u¿yteczne do ochronienia wzorów zaczynaj±cych siê od
112 .BI \-f " PLIK" ", --file=" PLIK
115 po jednym z ka¿dej linii. Plik pusty zawiera zero wzorów, nie pasuj±c
118 .B \-h, --no-filename
119 Wy³±cz prefiksowanie nazw plików w wyj¶ciu podczas przeszukiwania wielu
122 .B \-i, --ignore-case
123 Ignoruj ro¿ró¿nienia w wielko¶ci liter we
125 oraz w plikach wej¶ciowych.
127 .B \-L, --files-without-match
128 Wy³±cz normalne wyj¶cie; zamiast niego wypisz nazwê ka¿dego pliku
129 z którego normalnie nie wypisano by ¿adnego wyj¶cia. Przeszukiwanie
130 zakoñczy siê na pierwszej pasuj±cej linii.
132 .B \-l, --files-with-matches
133 Wy³±cz normalne wyj¶cie; zamiast niego wypisz nazwê ka¿dego pliku
134 z którego normalnie wypisano by jakie¶ wyj¶cie. Przeszukiwanie
135 zakoñczy siê na pierwszej pasuj±cej linii.
137 .B \-n, --line-number
138 Poprzed¼ ka¿da liniê wyj¶cia numerem linii w odpowiednim pliku
142 Po cichu; wy³±cz normalne wyj¶cie. Przeszukiwanie zakoñczy siê na
143 pierwszej pasuj±cej linii.
146 Wy³±cz komunikaty b³êdów o plikach nieistniej±cych lub nie do odczytania.
148 .B \-v, --revert-match
149 Odwróc sens dopasowania, wybieraj linie niepasuj±ce.
151 .B \-w, --word-regexp
152 Wybieraj tylko te linie które zawieraj± wzory tworz±ce ca³e s³owa.
153 Test przeprowadzany polega na tym ¿e dopasowywany podci±g musi albo
154 znajdowaæ siê na pocz±tku linii, albo byæ poprzedzony znakiem nie
155 tworz±cym s³owa. Podobnie, musi albo znajdowaæ siê na koñcu linii,
156 albo musi nastêpowaæ po nim znak nie tworz±cy s³owa. Znakami
157 tworz±cymi s³owa s± litery, cyfry i znak podkre¶lenia.
159 .B \-x, --line-regexp
160 Wybierz tylko te dopasowania które dok³adnie pasuj± do ca³ej linii.
167 Potraktuj plik jako binarny. Domy¶lnie, w DOSie i MS Windows,
169 zgaduje typ pliku spogl±daj±c na zawarto¶æ pierwszych 32 kB przeczytanych
172 zdecyduje ¿e plik jest tekstem, udziera znaki CR z oryginalnej zawarto¶ci
173 pliku (po to ¿eby wyra¿enia regularne z
177 dzia³a³y poprawnie). Podanie
179 wy³±cza to zgadywanie, powoduj±c ¿e wszystkie pliki s± czytane i
180 przekazywane mechanizmowi dopasowywuj±cemu jak leci; je¶li plik jest
181 plikiem tekstowym z parami CR/LF na koñcu linii, spowoduje to ¿e
182 niektóre wyra¿enia regularne nie zadzia³aj±. Opcja ta jest dostêpna
183 tylko w DOSie i MS Windows.
185 .B \-u, --unix-byte-offsets
186 Raportuj offsety bajtowe w stylu Unixowym. Prze³±cznik ten powoduje ¿ê
188 raportuje offsety bajtowe tak jakby plik by³ plikiem tekstowym w stylu
189 Unixowym, tj. z udartymi znakami CR. Da to rezultaty identyczne z
192 na maszynie Unixowej. Opcja ta nie wywo³uje ¿adnego efektu, chyba ¿e u¿yto
195 dostêpna jest ona tylko w DOSie i MS Windows.
197 .SH "WYRA¯ENIA REGULARNE"
199 Wyra¿enie regularne to wzór opisuj±cy zbiór ³añcuchów. Wyra¿enia
200 regularne s± zbudowane analogicznie do wyra¿eñ arytmetycznych,
201 u¿ywaj±c ró¿nych operatorów do po³±czenia mniejszych wyra¿eñ.
204 rozumie dwie ró¿ne wersje sk³adni wyra¿eñ regularnych: "podstawow±"
207 nie ma ró¿nicy w dostêpnej funkcjonalno¶ci kiedy u¿ywa siê jednej
208 ze sk³adni. W innych implementacjach podstawowe wyra¿enia regularne
209 s± mniej wszechstronne. Poni¿szy opis stosuje siê do rozszerzonych
210 wyra¿eñ regularnych; ró¿nice w stosunku do wyra¿eñ bazowych podsumowano
213 Fundamentalne "cegie³ki" to wyra¿enia regularne pasuj±ce do pojedynczego
214 znaku. Wiêkszo¶æ znaków, w tym wszystkie litery i cyfry, to wyra¿enia
215 regularne pasuj±ce do samych siebie. Ka¿dy metaznak maj±cy specjalne
216 znaczenie mo¿e byæ cytowany przez poprzedzenie go backslashem.
218 Lista znaków zwarta miêdzy
222 pasuje do ka¿dego pojedynczego znaku na tej li¶cie; je¶li pierwszym znakiem
225 pasuje wtedy ona do ka¿dego znaku
227 znajduj±cego siê na li¶cie. Dla przyk³adu, wyra¿enie regularne
229 pasuje do ka¿dej pojedynczej cyfry. Zakres znaków ASCII podaæ mo¿na
230 okre¶laj±c znak pierwszy i ostatni, oddzielone my¶lnikiem.
231 Niektóre w koñcu nazwane klasy znaków s± predefiniowane. Ich nazwy
232 mówi± same za siebie, i s± to:
249 z tym wyj±tkiem ¿e ta druga forma zale¿y od kodowania znaków ASCII, podczas
250 gdy format jest przeno¶ny (zauwa¿ ¿e nawiasy w tych nazwach klas s±
251 czê¶ci± nazw symbolicznych, i musz± byæ za³±czone, razem z nawiasami
252 ograniczaj±cymi listê w nawiasach). Wiêkszo¶æ metaznaków traci swoje
253 szczególne znaczenie wewn±trz list. Aby umie¶ciæ tam dos³owny
255 umie¶æ go jako pierwszy na li¶cie. Podobnie, aby umie¶ciæ dos³owny
257 umie¶æ go gdziekolwiek poza pierwszym miejscem. W koñcu, aby umie¶ciæ
260 umie¶æ go na ostatku.
264 pasuje do ka¿dego pojedynczego znaku.
278 s± metaznakami które pasuj± odpowiednio do ³añcucha pustego na pocz±tku
279 i na koñcu linii. Symbole
283 pasuj± odpowiednio do ³añcucha pustego na pocz±tku i na koñcu s³owa.
286 pasuje do ³añcucha pustego na krawêdzi s³owa, za¶
288 pasuje do pustego ³añcucha zak³adaj±c ¿e
290 jest on na krawêdzi s³owa.
292 Po wyra¿eniu regularnym mo¿e nastêpowaæ jeden z kilku operatorów
297 Poprzedzaj±cy element jest opcjonalny i pasuje co najmniej raz.
300 Poprzedzaj±cy element bêdzie dopasowany zero lub wiêcej razy.
303 Poprzedzaj±cy element bêdzie dopasowany jeden lub wiêcej razy.
306 Poprzedzaj±cy element pasuje dok³adnie
311 Poprzedzaj±cy element pasuje
316 Poprzedzaj±cy element jest opcjonalny i pasuje co najwy¿ej
321 Poprzedzaj±cy element pasuje co najmniej
323 razy, ale nie wiêcej ni¿
328 Dwa wyra¿enia regularne mo¿na do siebie dodaæ; wynikowe wyra¿enie
329 regularne pasuje do ka¿dego ci±gu utworzonego poprzez dodanie
330 dowolnych dwóch ci±gów które odpowiednio pasuj± do dodanych
333 Dwa wyra¿enia regularne mo¿na po³±czyæ operatorem infiksowym
335 wynikowe wyra¿enie regularne pasuje do dowolnego ci±gu pasuj±cego
336 do jednego z podwyra¿eñ.
338 Powtarzanie bierze priorytet nad dodawaniem, które z kolei bierze
339 górê nad przemienno¶ci±. Ca³e wyra¿enie regularne mo¿na uj±æ
340 w nawiasy, celem uniewa¿nienia tych regu³ priorytetowych.
346 jest pojedyncz± cyfr±, pasuje do podci±gu poprzednio pasuj±cego do
348 ujêtego w nawiasy podwyra¿enia wyra¿enia regularnego.
350 W podstawowych wyra¿eniach regularnych metaznaki
358 trac± swoje szczególne znaczenie; zamiast nich u¿yj wersji z backslashem:
371 traci swoje szczególne znaczenie; u¿yj zamiast niego
375 Normalnie status wyj¶ciowy równa siê 0 je¶li znaleziono dopasowania,
376 i 1 je¶li nie znaleziono ¿adnych. Opcja
378 odwraca sens statusu wyj¶ciowego. Status wyj¶ciowy równa siê 2 je¶li
379 wyst±pi³y b³êdy sk³adniowe we wzorze, niedostêpne pliki wej¶ciowe lub
380 inne b³êdy systemowe.
383 Emailuj raporty o b³êdach do
384 .BR bug-gnu-utils@gnu.org .
385 Upewnij siê ¿e umie¶ci³e¶ s³owo "grep" gdzie¶ w polu "Subject:"
387 Du¿e liczniki powtórzeñ w konstrukcji
389 mog± spowodowaæ ¿e grep zu¿yje mnóstwo pamiêci. Dodatkowo, pewne
390 inne niejasne wyra¿enia regularne wymagaj± czasu i przestrzeni
391 rosn±cej wyk³adnikowo, i mog± spowodowaæ ¿e
395 Wsteczne odwo³ania s± bardzo powolne, i mog± wymagaæ czasu rosn±cego