Rechercher une page de manuel
grep
Langue: hu
Version: 90838 (ubuntu - 01/11/07)
Section: 1 (Commandes utilisateur)
Sommaire
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>>pas les compilateurs.
on ecrit ses binaries avec cat, ca bouffe moins de ressources.
-+- Manuel in Guide du Fmblien Assassin : "amenez-moi la pince à tiercé !" -+-
Contenus ©2006-2008 Benjamin Poulain
Design ©2006-2008 Maxime Vantorre