Content
Data
License: GNU GPL
Version: 2.27
Developer / owner: Free Software Foundation, Inc.
Man page output
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)
Help output
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/>
Related Content
- 3922 views