Provided by: manpages-hu_20010119-6_all bug

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)