GREP(1) GREP(1)
grep, egrep, fgrep - minthoz illeszked sorokat nyomtat
grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] minta | -ffile ] [
fjlok... ]
Grep a megnevezett bemeneti fjlok -ban a megadott mint -hoz illeszked
sorokat keres. Amennyiben nincs bemen fjlnv megadva, vagy az a - jel, a
szabvnyos bemenetet olvassa. Alaprtelmezs szerint grep a minthoz
illeszked sorokat kinyomtatja.
Hrom f vltozata van a grep -nek, melyeket a kvetkez opcikkal szably-
ozhatunk:
-G A mint -t alap szablyos kifejezsknt (basic regular expression)
kezeli. Rszletesebben lsd lentebb. Ez az alaprtelmezett.
-E A mint -t bvtett szablyos kifejezsknt (extended regular expres-
sion) kezeli. Rszletesebben lsd lentebb.
-F A mint -t fix stringekbl ll listnak veszi, melyek jsor-jelekkel
vannak elvlasztva, s amelyekbl brmelyikhez val illeszkedst ker-
essk.
Ltezik tovbb kt programvltozat: egrep s fgrep . Egrep hasonl, de nem
azonos grep -E, -vel s kompatbilis a trtnelmi Unix egrep -pel. Fgrep
azonos grep -F -fel.
A grep minden vltozata megrti az albbi opcikat:
-num Az illeszkedst mutat sorok krnyezetkkel egytt lesznek kiny-
omatatva, azaz ezen sorok eltt s utni num szm sor is nyomtatsra
kerl. Ekzben a grep program sosem fog egy sort tbbszr kiny-
omtatni, mg akkor sem, ha ezek a krnyezetek tfedik egymst.
-A num Az illeszkedst mutat sorok utni num sor is nyomtatsra kerl.
-B num Az illeszkedst mutat sorok eltti num sor is nyomtatsra kerl.
-C Azonos -2 -vel.
-V Kinyomtatja a grep verziszmt a szabvnyos hibakimenetre. Ezt a
verziszmot clszer csatolni minden hibajelentshez. (Lsd lent.)
-b A kimeneti sorok eltt kinyomtatja a bemeneti fjlon belli offset
rtket. (Azaz azt, hogy a sor hnyadik bjttal kezddik a fjl
kezdete utn.)
-c Elhagyja a szoksos kimenetet, ehelyett az illeszkedst mutat
sorok szmt rja ki minden fjl esetre. A -v opcival (lsd lent), a
nem illeszked sorokat szmolja.
-e minta
A mint -t hasznlja mintnak. Hasznos, ha a minta - jellel kezd-
dik.
-f fjl A mintt a fjl -bl veszi.
-h Tbb fjlban val keresskor elhagyja a kimeneten a fjlnevek sor
eleji kirst.
-i Nem klnbzteti meg a kis- s nagybetket sem a mint -ban, sem a
bemeneti fjlban.
-L Elhagyja a szoksos kimenetet, s csak azon fjlok neveit adja meg,
amelyekbl nem szrmazna kimenet.
-l Elhagyja a szoksos kimenetet, s csak azon fjlok neveit adja meg,
amelyekbl szrmazna kimenet.
-n A kimenet sorai elejn megadja a sor bemeneti fjlon belli szmt.
-q Csendes (quiet) zemmd: elhagyja a normlis kimenetet. (Ilyenkor a
grep -nek csak a visszatrsi rtke ad informcit.)
-s Elhagyja a nemltez vagy olvashatatlan fjlokrl szl hibaje-
lentseket.
-v Megfordtja az illeszkeds rtelmt: a minthoz nem illeszked sorokat
vlasztja ki.
-w Csak azokat a sorokat vlasztja ki, amelyekben az illeszkeds tel-
jes szavakbl szrmazik. Azaz az illeszkedst mutat szvegrsz eltt s
utn nem llhat bet, szm vagy alhzsjel.
-x Csak teljes sorokkal val illeszkedst vizsgl.
A szablyos kifejezs egy minta, amely a stringeknek egy halmazt rja le.
A szablyos kifejezsek az aritmetikai kifejezsekhez hasonlan konstrul-
hatk, azaz klnbz opertorokkal kisebb kifejezsekbl pthetk fel.
Grep ktfle vltozatt rti a szablyos kifejezsek nyelvtannak (syntax): az
``alap'' (basic) s a ``bvtett'' (extended) vltozatot. A GNU grep -ben
nincs klnbsg a ktfle nyelvtan ltal elrhet funkcikban. Ms megvalstsokban
az alap szablyos kifejezsek kevsb hatkonyak. A kvetkez lers a bvtett
szablyos kifejezsekre vonatkozik; az alap regulris kifejezseknek ettl
val klnbsgeit ezutn sszegezzk.
Az elemi ptkvek olyan szablyos kifejezsek, melyek egyetlen karakterhez
illeszkednek. A legtbb karakter (pl. a betk s a szmok) szablyos kife-
jezsek, melyek nmagukhoz illeszkednek. A specilis jelentssel rendelkez
metakarakterek (pl. a ., *, [ karakterek) el backslash-t kell rni, hogy
specilis jelentsk helyett a karakterhez val illeszkedst vizsglhassuk.
(Pl. a mintban lev fog illeszkedik a szvegbeli nyit szgletes zrjellel.)
A [ s ] jelek kz rt karakterlista illeszkedik a listban szerepl brmely
karakterhez. Amennyiben a lista a ^ jellel kezddik, az illeszkeds a
listban nem szerepl karakterekkel ll fenn. Pldul a [0123456789]
szablyos kifejezs brmely szmjegyhez illeszkedik.
ASCII karakterek tartomnya az els s utols karakterek megadsval adhat
meg, ha ezeket `-' jel vlasztja el. (Pl. [a-f] ugyanaz, mint [abcdef].)
Vgl a karakterek nhny specilis osztlya elre definilt nvvel rendelkezik.
(Ezen nevek jelentse angolul magtl rtetd, itt kifejtjk ket.)
[:alnum:]
bet vagy szm
[:alpha:]
bet
[:cntrl:]
vezrlkarakter
[:digit:]
szmjegy
[:graph:]
grafikus karakter
[:lower:]
kisbet
[:print:]
nyomtathat karakter
[:punct:]
elvlaszt, kzpontoz jel (.,;?!)
[:space:]
szkz
[:upper:]
nagybet
[:xdigit:]
hexadecimlis szm
Pdul [[:alnum:]] jelentse: [0-9A-Za-z], azzal a kittellel, hogy az
utbbi forma az ASCII kdolstl fgg, mg az elbbi nem, gy tvihet. (Megje-
gyzs: ezen osztlynevekben szerepl zrjelek a szimbolikus nevek rszei, s
a zrjeles listkat hatrol zrjelek mellett ezeket is meg kell adni.)
A legtbb metakarakter elveszti specilis jelentst egy listn bell. Egy ]
jelet a minta els elemeknt szerepeltetve csatolhatunk a listhoz.
Hasonlan a ^ jel az els kivtelvel brmely helyre kerlve a `^' jelet
fogja jelenteni. Vgl a `-' jelet a lista utols elemeknt kell rni, ha
nem metakarakterknt akarjuk rtelmezni.
A pont ( . ) minden karakterhez illeszkedik. A \w szimblum az
[[:alnum:]] szinonmja, mg \W ugyanaz, mint [^[:alnum:]].
A ^ s a $ jelek metakarakterek, melyek rendre a sorkezd s -zr res
srtingekhez illeszkednek. Hasonlan a \< s \> szimblumok a szavak ele-
jnl illetve vgnl tallhat res stringhez illeszkednek. A \b a szhatron
lev res stringhez illeszkedik, mg \B a nem szhatron lev res stringhez
illeszkedik.
Az egy karakterhez illeszked szablyos kifejezseket a kvetkez ismtlsi
opertorok egyike kvetheti:
? Az elz tag opcionlis, s legfeljebb egyszer illeszkedik.
* Az elz tag nulla vagy tbb alkalommal illeszkedik.
+ Az elz tag egy vagy tbb alkalommal illeszkedik.
{n} Az elz tag pontosan n alkalommal illeszkedik.
{n,} Az elz tag n vagy tbb alkalommal illeszkedik.
{,m} Az elz tag legfeljebb m alkalommal illeszkedik.
{n,m} Az elz tag legalbb n de legfeljebb m alkalommal illeszkedik.
Kt szablyos kifejezs sszefzhet; a kapott szablyos kifejezs minden olyan
stringhez illeszkedik, amely a kt szablyos kifejezshez illeszked kt
rszstringbl llthat ssze a sorrend megtartsa mellett.
Kt szablyos kifejezs sszekapcsolhat a | infix opertorral; a kapott
szablyos kifejezs minden stringhez illeszkedik, amelyikhez valamelyik
rszkifejezs illeszkedik.
Az ismtls nagyobb precedencij, mint az sszefzs, ami viszont a vlasztop-
ertornl (azaz |-nl) nagyobb precedencij. Egy rszkifejezs zrjelbe tehet,
hogy fellbrljuk a precedencit.
A \n visszahivatkozst (backreference) jell, ahol n egy szmjegy. Ez
illeszkedik ahhoz a stringhez, amely a szablyos kifejezs ezt megelz n
-edik zrjeles alkifejezshez illeszkedett.
Az alap szablyos kifejezsekben a ?, +, {, |, (, s ) metakarakterek
elvesztik specilis jelentsket; helyettk a backslash-es vltozatukat kell
hasznlni: \?, \+, \{, \|, \(, s \).
Az egrep programban a { metakarakter elveszti specilis jelentst,
helyette a \{ hasznlhat.
ltalban a kilpsi llapot (exit status) 0, ha volt illeszkeds s 1, ha nem
volt egyetlen illeszkeds sem. A -v opci megfordtja ennek rtelmt.
A 2 kilpsi llapot hibt jelez: nyelvtani hiba volt a mintban vagy
elrhetetlen a bemeneti fjl, esetleg ms rendszerhiba trtnt.
A hibajelentsek e-mail-en a bug-gnu-utils [AT] prep.edu. cmre
kldendk. Gyzdjn meg rla, hogy a ``grep'' sz szerepel valahol a ``Sub-
ject:'' mezben.
Nagy ismtlsi szmok a {m,n} ismtlsi opertorban nagy memriafelhasznlst
eredmnyezhetnek. Tovbb nhny ms bonyolult szablyos kifejezs exponencil-
isan nv idt s trhelyet kvetelhet, s azt eredmnyezheti, hogy a grep
kifut a memribl.
A visszahivatkozsok nagyon lassak s exponencilisan nv futsidt ignyel-
nek.
Horvth Andrs <horvatha [AT] rs1.hu>
GNU Project 1992 September 10 GREP(1)