Provided by: manpages-hu_20010119-5_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>