grep

GREP(1)                     General Commands Manual                    GREP(1)



NÃV
       grep, egrep, fgrep - mintához illeszkedŠsorokat nyomtat

ÃTTEKINTÃS
       grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] minta | -ffile ] [
       fájlok...  ]

LEÃRÃS
       Grep a megnevezett bemeneti fájlok -ban a megadott mintá -hoz
       illeszkedŠsorokat keres. Amennyiben nincs bemenŠfájlnév megadva,
       vagy az a - jel, a szabványos bemenetet olvassa.  Alapértelmezés
       szerint grep a mintához illeszkedŠsorokat kinyomtatja.

       Három fŠváltozata van a grep -nek, melyeket a következŠopciókkal
       szabályozhatunk:
       -G     A mintá -t alap szabályos kifejezésként (basic regular
              expression) kezeli.  Részletesebben lásd lentebb. Ez az
              alapértelmezett.
       -E     A mintá -t bÅvÃtett szabályos kifejezésként (extended
              regular expression) kezeli. Részletesebben lásd lentebb.
       -F     A mintá -t fix stringekbÅl álló listának veszi, melyek
              újsor-jelekkel vannak elválasztva, és amelyekbÅl
              bármelyikhez való illeszkedést keressük.
       Létezik továbbá két programváltozat: egrep és fgrep .  Egrep
       hasonló, de nem azonos grep -E, -vel és kompatÃbilis a történelmi
       Unix egrep -pel.  Fgrep azonos grep -F -fel.

       A grep minden változata megérti az alábbi opciókat:
       -num   Az illeszkedést mutató sorok környezetükkel együtt lesznek
              kinyomatatva, azaz ezen sorok elÅtt és utáni num számú sor
              is nyomtatásra kerül. Eközben a grep program sosem fog egy
              sort többször kinyomtatni, még akkor sem, ha ezek a
              környezetek átfedik egymást.
       -A num Az illeszkedést mutató sorok utáni num sor is nyomtatásra
              kerül.
       -B num Az illeszkedést mutató sorok elÅtti num sor is nyomtatásra
              kerül.
       -C     Azonos -2 -vel.
       -V     Kinyomtatja a grep verziószámát a szabványos hibakimenetre.
              Ezt a verziószámot célszerű csatolni minden
              hibajelentéshez. (Lásd lent.)
       -b     A kimeneti sorok elÅtt kinyomtatja a bemeneti fájlon belüli
              offset értéket.  (Azaz azt, hogy a sor hányadik bájttal
              kezdÅdik a fájl kezdete után.)
       -c     Elhagyja a szokásos kimenetet, ehelyett az illeszkedést
              mutató sorok számát Ãrja ki minden fájl esetére.  A -v
              opcióval (lásd lent), a nem illeszkedŠsorokat számolja.
       -e minta
              A mintá -t használja mintának. Hasznos, ha a minta - jellel
              kezdÅdik.
       -f fájl
              A mintát a fájl -ból veszi.
       -h     Több fájlban való kereséskor elhagyja a kimeneten a
              fájlnevek sor eleji kiÃrását.
       -i     Nem különbözteti meg a kis- és nagybetűket sem a mintá
              -ban, sem a bemeneti fájlban.
       -L     Elhagyja a szokásos kimenetet, és csak azon fájlok neveit
              adja meg, amelyekbÅl nem származna kimenet.
       -l     Elhagyja a szokásos kimenetet, és csak azon fájlok neveit
              adja meg, amelyekbÅl származna kimenet.
       -n     A kimenet sorai elején megadja a sor bemeneti fájlon belüli
              számát.
       -q     Csendes (quiet) üzemmód: elhagyja a normális kimenetet.
              (Ilyenkor a grep -nek csak a visszatérési értéke ad
              információt.)
       -s     Elhagyja a nemlétezŠvagy olvashatatlan fájlokról szóló
              hibajelentéseket.
       -v     MegfordÃtja az illeszkedés értelmét: a mintához nem
              illeszkedŠsorokat választja ki.
       -w     Csak azokat a sorokat választja ki, amelyekben az illeszkedés
              teljes szavakból származik. Azaz az illeszkedést mutató
              szövegrész elÅtt és után nem állhat betű, szám vagy
              aláhúzásjel.
       -x     Csak teljes sorokkal való illeszkedést vizsgál.

SZABÃLYOS KIFEJEZÃSEK (REGULAR EXPRESSIONS)
       A szabályos kifejezés egy minta, amely a stringeknek egy halmazát Ã‐
       rja le. A szabályos kifejezések az aritmetikai kifejezésekhez
       hasonlóan konstruálhatók, azaz különbözŠoperátorokkal kisebb
       kifejezésekbÅl épÃthetÅk fel.

       Grep kétféle változatát érti a szabályos kifejezések
       nyelvtanának (syntax): az ``alap'' (basic) és a ``bÅvÃtett''
       (extended) változatot.  A GNU grep -ben nincs különbség a kétféle
       nyelvtan által elérhetÅ funkciókban. Más megvalósÃtásokban az
       alap szabályos kifejezések kevésbé hatékonyak. A következÅ leÃ‐
       rás a bÅvÃtett szabályos kifejezésekre vonatkozik; az alap
       reguláris kifejezéseknek ettÅl való különbségeit ezután
       összegezzük.

       Az elemi épÃtÅkövek olyan szabályos kifejezések, melyek egyetlen
       karakterhez illeszkednek. A legtöbb karakter (pl. a betűk és a
       számok) szabályos kifejezések, melyek önmagukhoz illeszkednek. A
       speciális jelentéssel rendelkezŠmetakarakterek (pl. a ., *, [
       karakterek) elé backslash-t kell Ãrni, hogy speciális jelentésük
       helyett a karakterhez való illeszkedést vizsgálhassuk. (Pl. a
       mintában levŠ\[ fog illeszkedik a szövegbeli nyitó szögletes
       zárójellel.)

       A [ és ] jelek közé Ãrt karakterlista illeszkedik a listában
       szereplÅ bármely karakterhez. Amennyiben a lista a ^ jellel kezdÅdik,
       az illeszkedés a listában nem szereplŠkarakterekkel áll fenn.
       Például a [0123456789] szabályos kifejezés bármely számjegyhez
       illeszkedik.

       ASCII karakterek tartománya az elsŠés utolsó karakterek
       megadásával adható meg, ha ezeket `-' jel választja el. (Pl. [a-f]
       ugyanaz, mint [abcdef].)

       Végül a karakterek néhány speciális osztálya elÅre definiált
       névvel rendelkezik. (Ezen nevek jelentése angolul magától
       értetÅdÅ, itt kifejtjük Åket.)
       [:alnum:]
              betű vagy szám
       [:alpha:]
              betű
       [:cntrl:]
              vezérlÅkarakter
       [:digit:]
              számjegy
       [:graph:]
              grafikus karakter
       [:lower:]
              kisbetű
       [:print:]
              nyomtatható karakter
       [:punct:]
              elválasztó, központozó jel (.,;?!)
       [:space:]
              szóköz
       [:upper:]
              nagybetű
       [:xdigit:]
              hexadecimális szám

       Pédául [[:alnum:]] jelentése: [0-9A-Za-z], azzal a kitétellel, hogy
       az utóbbi forma az ASCII kódolástól függ, mÃg az elÅbbi nem, Ãgy
       átvihetÅ.  (Megjegyzés: ezen osztálynevekben szereplÅ zárójelek a
       szimbolikus nevek részei, és a zárójeles listákat határoló
       zárójelek mellett ezeket is meg kell adni.)

       A legtöbb metakarakter elveszti speciális jelentését egy listán
       belül. Egy ] jelet a minta elsŠelemeként szerepeltetve csatolhatunk
       a listához.  Hasonlóan a ^ jel az elsŠkivételével bármely helyre
       kerülve a `^' jelet fogja jelenteni.  Végül a `-' jelet a lista
       utolsó elemeként kell Ãrni, ha nem metakarakterként akarjuk
       értelmezni.

       A pont ( .  ) minden karakterhez illeszkedik.  A \w szimbólum az
       [[:alnum:]] szinonÃmája, mÃg \W ugyanaz, mint [^[:alnum:]].

       A ^ és a $ jelek metakarakterek, melyek rendre a sorkezdŠés -záró
       üres srtingekhez illeszkednek.  Hasonlóan a \< és \> szimbólumok a
       szavak elejénél illetve végénél található üres stringhez
       illeszkednek.  A \b a szóhatáron levŠüres stringhez illeszkedik,
       mÃg \B a nem szóhatáron levŠüres stringhez illeszkedik.

       Az egy karakterhez illeszkedÅ szabályos kifejezéseket a következÅ
       ismétlési operátorok egyike követheti:
       ?      Az elÅzÅ tag opcionális, és legfeljebb egyszer illeszkedik.
       *      Az elÅzÅ tag nulla vagy több alkalommal illeszkedik.
       +      Az elÅzÅ tag egy vagy több alkalommal illeszkedik.
       {n}    Az elÅzÅ tag pontosan n alkalommal illeszkedik.
       {n,}   Az elÅzÅ tag n vagy több alkalommal illeszkedik.
       {,m}   Az elÅzÅ tag legfeljebb m alkalommal illeszkedik.
       {n,m}  Az elÅzÅ tag legalább n de legfeljebb m alkalommal illeszkedik.

       Két szabályos kifejezés összefűzhetÅ; a kapott szabályos
       kifejezés minden olyan stringhez illeszkedik, amely a két szabályos
       kifejezéshez illeszkedÅ két részstringbÅl állÃtható össze a
       sorrend megtartása mellett.

       Két szabályos kifejezés összekapcsolható a | infix operátorral; a
       kapott szabályos kifejezés minden stringhez illeszkedik, amelyikhez
       valamelyik részkifejezés illeszkedik.

       Az ismétlés nagyobb precedenciájú, mint az összefűzés, ami
       viszont a választóoperátornál (azaz |-nál) nagyobb
       precedenciájú. Egy részkifejezés zárójelbe tehetÅ, hogy felülbÃ‐
       ráljuk a precedenciát.

       A \n visszahivatkozást (backreference) jelöl, ahol n egy számjegy.
       Ez illeszkedik ahhoz a stringhez, amely a szabályos kifejezés ezt
       megelÅzÅ n -edik zárójeles alkifejezéshez illeszkedett.

       Az alap szabályos kifejezésekben a ?, +, {, |, (, és )
       metakarakterek elvesztik speciális jelentésüket; helyettük a
       backslash-es változatukat kell használni: \?, \+, \{, \|, \(, és \).

       Az egrep programban a { metakarakter elveszti speciális jelentését,
       helyette a \{ használható.

DIAGNOSZTIKA
       Ãltalában a kilépési állapot (exit status) 0, ha volt illeszkedés
       és 1, ha nem volt egyetlen illeszkedés sem. A -v opció megfordÃtja
       ennek értelmét.

       A 2 kilépési állapot hibát jelez: nyelvtani hiba volt a mintában
       vagy elérhetetlen a bemeneti fájl, esetleg más rendszerhiba
       történt.

HIBÃK
       A hibajelentések e-mail-en a bug-gnu-utils@prep.ai.mit.edu.  cÃmre
       küldendÅk. GyÅzÅdjön meg róla, hogy a ``grep'' szó szerepel valahol
       a ``Subject:'' mezÅben.

       Nagy ismétlési számok a {m,n} ismétlési operátorban nagy
       memóriafelhasználást eredményezhetnek.  Továbbá néhány más
       bonyolult szabályos kifejezés exponenciálisan növÅ idÅt és
       tárhelyet követelhet, és azt eredményezheti, hogy a grep kifut a
       memóriából.

       A visszahivatkozások nagyon lassúak és exponenciálisan növÅ
       futásidÅt igényelnek.

MAGYAR FORDÃTÃS
       Horváth András <horvatha@rs1.szif.hu>



GNU Project                    1992 September 10                       GREP(1)