grep

Tartalom

 

Adatok

Licenc: GNU GPL
Verziószám: 2.27
Fejlesztő/tulajdonos: Free Software Foundation, Inc.

 

 

Man oldal kimenet

man 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 [kukac] rs1.szif.hu>

GNU Project                             1992 September 10                                 GREP(1)

 

 

Súgó kimenet

grep --help
Használat: grep [KAPCSOLÓ]… MINTA [FÁJL]…
A MINTA keresése minden FÁJLBAN vagy a szabványos bemeneten.
A MINTA egy alapszintű reguláris kifejezés (BRE).
Példa: grep -i 'szia világ' menu.h main.c

Reguláris kifejezés kiválasztása és értelmezése:
  -E, --extended-regexp     a MINTA kiterjesztett reguláris kifejezés (ERE)
  -F, --fixed-strings       a MINTA újsorokkal elválasztott karakterláncok
                              halmaza
  -G, --basic-regexp        a MINTA alapvető reguláris kifejezés (BRE)
  -P, --perl-regexp         a MINTA Perl reguláris kifejezés
  -e, --regexp=MINTA        a MINTA használata illesztésre
  -f, --file=FÁJL           a MINTA beolvasása a FÁJLBÓL
  -i, --ignore-case         a kis- és nagybetűk megegyeznek
  -w, --word-regexp         a MINTA csak egész szóra illeszkedik
  -x, --line-regexp         a MINTA csak egész sorra illeszkedik
  -z, --null-data           az adat sorai 0 bájtra végződnek, nem újsorra

Egyéb:
  -s, --no-messages         hibaüzenetek elnémítása
  -v, --invert-match        a nem illeszkedő sorok kiválogatása
  -V, --version             verzióinformációk kiírása és kilépés
      --help                ezen súgó kiírása és kilépés

Kimenet beállításai:
  -m, --max-count=SZÁM      megáll SZÁM találat után
  -b, --byte-offset         a kimenetben szerepel a sor helye is (bájteltolás)
  -n, --line-number         a kimenetben szerepel a sor száma is
      --line-buffered       kimenet kiürítése minden sor után
  -H, --with-filename       fájlnév kiírása minden találathoz
  -h, --no-filename         a kimenetbe nem írja ki a fájlnév előtagot
      --label=CÍMKE         a CÍMKE kiírása fájlnévként a szabványos bemenet
                              használatakor
  -o, --only-matching       a sornak csak a MINTÁRA illeszkedő részét írja ki
  -q, --quiet, --silent     minden szokványos kimenet elhagyása
      --binary-files=TÍPUS  a bináris fájlokat adott TÍPUSÚNAK veszi, a TÍPUS
                              a „binary”, „text” vagy „without-match” egyike
  -a, --text                ugyanaz, mint a --binary-files=text
  -I                        ugyanaz, mint a --binary-files=without-match
  -d, --directories=MŰVELET mi történjen a könyvtárakkal; a MŰVELET
                              a „read”, „recurse” vagy „skip” egyike
  -D, --devices=MŰVELET     mi történjen az eszközökkel, FIFO-kkal és
                              foglalatokkal, a MŰVELET a „read” vagy „skip”
                              egyike
  -r, --recursive           ugyanaz, mint a --directories=recurse
  -R, --dereference-recursive hasonló, de követi az összes szimlinket
      --include=FÁJLMINTA   csak a FÁJLMINTÁRA illeszkedő fájlokat vizsgálja
      --exclude=FÁJLMINTA   a FÁJLMINTÁRA illeszkedő fájlok kihagyása
      --exclude-from=FÁJL   a FÁJLBAN található mintákra illeszkedő
                              fájlok kihagyása.
      --exclude-dir=MINTA   a MINTÁRA illeszkedő könyvtárak kihagyása
  -L, --files-without-match csak azon fájlnevek kiírása, ahol nem volt találat
  -l, --files-with-matches  csak azon fájlnevek kiírása, ahol volt találat
  -c, --count               csak az illeszkedő sorok számának kiírása, FÁJLONKÉNT
  -T, --initial-tab         sorok feltöltése tabokkal (ha szükséges)
  -Z, --null                0 bájt írása a FÁJLNÉV után

Szövegkörnyezet beállításai:
  -B, --before-context=SZÁM SZÁM db. sor kiírása a találat előtti környezetből
  -A, --after-context=SZÁM  SZÁM db. sor kiírása a találat utáni környezetből
  -C, -- context=SZÁM       SZÁM darab sor kiírása a környezetből
  -SZÁM                     ugyanaz, mint a --context=SZÁM
      --color[=EKKOR],
      --colour[=EKKOR]      az illeszkedő karakterláncot beszínezi
                              az EKKOR lehet „always”, „never” vagy „auto”
  -U, --binary              nem vágja le a CR karaktereket sor végén
                              (MSDOS/Windows)
  -u, --unix-byte-offsets   eltolások kiírása, mintha nem lenne ott a CR
                              (MSDOS/Windows)

Az „egrep” jelentése „grep -E”. Az „fgrep” jelentése „grep -F”.
A közvetlen hívás „egrep” vagy „fgrep” formában elavult.
Ha a FÁJL a -, akkor a szabványos bemenetről olvas. Ha nincs megadva FÁJL,
és a parancssori -r meg van adva, a . egyébként a - olvasása. Ha kevesebb
mint két FÁJL van megadva, a -h kapcsolót feltételezi. A kilépési
érték: 0, ha van találat, egyébként 1, ha hiba történt és a -q nincs megadva: 2

A hibák a(z) bug-grep@gnu.org címen jelenthetők.
A(z) GNU grep honlapja: <http://www.gnu.org/software/grep/>
Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/gethelp/>

 

Kapcsolódó tartalom

 

Címkék