GREP(1) GREP(1)
grep, egrep, fgrep - tiskne dky, kter odpovdaj zadanmu vzoru
grep [volby] VZOR [SOUBOR...]
grep [volby] [-e VZOR | -f SOUBOR] [SOUBOR...]
Grep prohledv zadan vstup SOUBOR (nebo standardn vstup, pokud nejsou
zadny dn soubory nebo je zadn soubor -) a hled dky obsahujc zadan VZOR.
Ve vchozm nastaven grep vypisuje dky, kter vzoru odpovdaj.
Dostupn jsou navc dv varianty programu - egrep a fgrep. Chovn programu
egrep je stejn jako grep -E, chovn programu fgrep je stejn jako
grep -F.
-A POET, --after-context=POET
Tiskni POET dk, kter nsleduj po platnm (odpovdajcm) dku. Mezi
souvisl platn vsledky vkld dky obsahujc --.
-a, --text
Pracuj s binrnm souborem jako by to byl text; ekvivalentn k volb
--binary-files=text.
-B POET, --before-context=POET
Tiskni POET dk kter pedchzej platnmu dku. Mezi souvisl platn
vsledky vkld dky obsahujc --.
-C POET, --context=POET
Tiskni POET dk ke kadmu platnmu dku. Mezi souvisl platn vsledky
vkld dky obsahujc --.
-b, --byte-offset
Tiskni offset bajtu ve vstupnm souboru ped kadm dkem vstupu.
--binary-files=TYP
Jestlie podle prvnch nkolika bajt obsahuje soubor binrn data,
pedpokldej, e je typu TYP. Vchozm nastavenm TYP je binary a
grep standardn vype bu jednodkovou zprvu, e binrn soubor odpovd,
nebo dnou zprvu pokud neodpovd. Jestlie je TYP without-match,
grep pedpokld, e binrn soubory neodpovdaj; je to stejn jako
volba -I. Jestlie je TYP text, grep zpracovv binrn soubor, jako
by to byl text; stejn jako volba -a. Pozor: grep --binary-
files=text me zpsobit, e se budou vypisovat nesmysln binrn
znaky, co me mt nepjemn vedlej inky pokud je vstupem terminl a
ovlada terminlu zane nkter znaky interpretovat jako pkazy.
--colour[=KDY], --color[=KDY]
Obklop platn etzec znakou z promnn prosted GREP_COLOR. KDY me
bt `never', `always' nebo `auto'
-c, --count
Potla normln vstup; msto toho napi poet odpovdajcch dk pro kad
vstupn soubor. S volbou -v, --invert-match (viz ne), potej
neodpovdajc dky.
-D AKCE, --devices=AKCE
Pokud je vstupnm souborem zazen, FIFO nebo socket, pouij AKCI k
jeho zpracovn. Vchozm nastavenm AKCE je read, to znamen, e zazen
se tou jako by to byly bn soubory. Jestlie AKCE je skip, zazen
se mlky pesko.
-d AKCE, --directories=AKCE
Pokud je vstupnm souborem adres, pouij AKCI k jeho zpracovn.
Vchozm nastavenm AKCE je read, to znamen, e adrese se tou jako
by to byly bn soubory. Jestlie AKCE je skip, adrese se mlky
pesko. Jestlie AKCE je recurse, grep te rekurzivn vechny
soubory v kadm adresi; je to stejn jako volba -r.
-E, --extended-regexp
Povauj VRAZ za rozen regulrn vraz (viz ne).
-e VRAZ, --regexp=VRAZ
Jako vzor pouij VRAZ; uiten pro zachovn vzor zanajcch -.
-F, --fixed-strings
Povauj VRAZ za seznam pevnch etzc oddlench znaky konce dku, ze
kterch me odpovdat kterkoliv. -P, --perl-regexp Povauj VRAZ za
regulrn vraz Perlu.
-f SOUBOR, --file=SOUBOR
Nate vzory ze souboru SOUBOR, na kadm dku jeden. Przdn soubor
obsahuje nula vzor a tedy neodpovd niemu.
-G, --basic-regexp
Povauj VRAZ za zkladn regulrn vraz (viz ne). Toto je vchoz nas-
taven.
-H, --with-filename
Tiskni jmno souboru pro kadou shodu.
-h, --no-filename
Potla vkldn jmen soubor do vstupu pi prohledvn vce soubor.
--help Vytiskni strunou npovdu.
-I Zpracuj binrn soubor jako by neobsahoval shody; to je stejn jako
volba --binary-files=without-match.
-i, --ignore-case
Nerozliuj velk a mal psmena ve VRAZU ani ve vstupnch souborech.
-L, --files-without-match
Potla normln vstup; msto toho tiskni jmno kadho souboru, ze
kterho by se jinak dn vstup netiskl. Prohledvn skon s prvn
shodou.
-l, --files-with-matches
Potla normln vstup; msto toho tiskni jmno kadho souboru, ze
kterho by se jinak tiskl njak vstup. Prohledvn skon s prvn
shodou.
-m POET, --max-count=POET
Pesta st soubor po dosaen POTU odpovdajcch dk. Je-li vstupem
standardn vstup z obyejnho souboru, a je vytitno POET odpovda-
jcch dk, grep zajist, e standardn vstup bude ped ukonenm nas-
taven prv po poslednm odpovdajcm dku, bez ohledu na ptomnost
nsledujcch dk kontextu. Tak je mon, aby volajc proces hledn
obnovil. Kdy grep po dosaen POTU odpovdajcch dk zastav, vype
dky kontextu, kter nsleduj. Pokud je zrove pouita volba -c nebo
--count, program grep nevype vce shod ne je POET. Pokud je
zrove pouita volba -v nebo --invert-match program, grep skon po
vypsn POTU neodpovdajcch dk.
--mmap Pokud je to mon, pouij systmov voln mmap(2) ke ten vstupnch dat,
msto vchozho read(2). V nkterch ppadech me --mmap zlepit vkon.
Na druhou stranu --mmap me zpsobit nedefinovan chovn (vetn core
dump), jestlie se vstupn soubor za bhu programu grep zmen nebo
pokud nastane chyba vstupu/vstupu.
-n, --line-number
Ped kad dek vstupu pidej jeho slo v pslunm vstupnm souboru.
-o, --only-matching
Vypisuj jen tu st odpovdajcho dku, kter je odpovd VZORU.
--label=LABEL
Zobrazuj vstup pochzejc ze standardnho vstupu jakoby pochzel ze
souboru LABEL. To je zvlt uiten pro nstroje jako je zgrep, nap.
gzip -cd foo.gz |grep --label=foo nco
--line-buffering
Pouij line buffering, me negativn ovlivnit vkon.
-q, --quiet, --silent
Tie; potla normln vstup. Prohledvn skon s prvn shodou, s nvra-
tovou hodnotou nula, i kdy byla detekovna njak chyba. Viz tak
volba -s nebo --no-messages uveden dle.
-R, -r, --recursive
Rekurzivn nati vechny soubory v kadm adresi; to je stejn jako
volba -d recurse.
--include=VZOR
Rekurzivn prochzej adrese, prohledvej pouze soubory odpovdajc
VZORU.
--exclude=VZOR
Rekurzivn prochzej adrese, pesko soubory odpovdajc VZORU.
-s, --no-messages
Potla chybov hlky o neexistujcch nebo neitelnch souborech.
Poznmka o penositelnosti: na rozdl od GNU grepu, tradin grep
neodpovdal specifikaci POSIX.2, protoe neml volbu -q a jeho
volba -s se chovala jako volba -q GNU grepu. Shellov skripty
kter maj bt penositeln na tradin grep, by se mly voleb -q a -s
vyvarovat a pesmrovat msto toho vstup do /dev/null.
-U, --binary
Pracuj se soubory jako s binrnmi. Normln typ souboru pod MS-DOS
a MS-Windows uruje grep tak, e se podv na prvnch 32KB dat
petench ze souboru. Kdy grep rozhodne, e soubor je textov,
vynech z pvodnho obsahu znaky CR (aby nepestaly sprvn fungovat
regulrn vrazy obsahujc ^ a $ ). Uvedenm volby -U se toto
pravidlo ru a vechny soubory se pedaj porovnvacmu mechanismu
doslovn. Pokud obsahuje soubor text s pry CR/LF na koncch dk,
zpsob to, e nkter regulrn vrazy pestanou fungovat. Tato volba
nem dn inek na platformch jinch ne MS-DOS a MS-Windows.
-u, --unix-byte-offsets
Hlsit offsety jako v Unixu. Tento pepna zajist, e grep bude
tisknout offsety bajt jako by soubor byl textov soubor v Unixu,
tedy bez znak CR. To znamen, e vsledky grep budou stejn jako v
systmu Unix. Tato volba nem dn efekt bez souasnho pouit volby
-b; tak nem efekt na platformch jinch ne MS-DOS a MS-Windows.
-V, --version
Vytiskni verzi programu grep na chybov vstup. Verze by mla bt
uvedena ve vech hlench chyb (viz ne).
-v, --invert-match
Pevra vznam shody - vyberou se dky, kter vzoru neodpovdaj.
-w, --word-regexp
Vyber jen dky ve kterch se shoduje cel samostatn slovo. Odpov-
dajc etzec mus bt bu na zatku dku nebo mt ped sebou znak kter se
nebere jako soust slova. Podobn mus etzec bt bu na konci dku
nebo za nm mus nsledovat znak kter se nebere jako soust slova.
Znaky kter se povauj za sti slov jsou psmena, slice a podtrtko.
-x, --line-regexp
Vyber jen shody zahrnujc cel dek.
-y Zastaral alternativa pro -i.
-Z, --null
Vytiskni nulov bajt (znak ASCII NUL) msto znaku, kter normln
nsleduje po jmnech soubor. Napklad grep -lZ pe nulov bajt po
kadm nzvu souboru msto obvyklho znaku konce dku. Tato volba
zajist jednoznanost vstupu i v ppad, e nzvy soubor obsahuj neob-
vykl znaky jako znaky konce dku. Tuto volbu lze pout pro pkazy
jako find -print0, perl -0, sort -z a xargs -0, ke zpracovn
libovolnch jmen soubor vetn tch, kter obsahuj znaky konce dku.
Regulrn vraz je vzor, kter popisuje mnoinu etzc. Regulrn vrazy se p
(podobn jako aritmetick vrazy) pomoc rznch opertor, kter dvaj dohromady
men vrazy.
Grep zn dv rzn verze syntaxe pro regulrn vrazy: "zkladn" a "rozen." Pro
GNU grep nen v tchto dvou verzch dn rozdl co se te funknosti. V jinch
implementacch jsou zkladn regulrn vrazy slab. Nsledujc popis plat pro
rozen regulrn vrazy; rozdly pro zkladn regulrn vrazy jsou uvedeny na
konci.
Zkladnm stavebnm kamenem jsou regulrn vrazy, kter odpovdaj jedinmu
znaku. Vtina znak, vetn vech psmen a slic, jsou samy o sob regulrnmi
vrazy, kter se shoduj samy se sebou. Kterkoli metaznak se zvltnm
vznamem me bt uveden ve svm pvodnm vznamu tak, e se ped nj nape zptn
lomtko.
Seznam znak v [ a ] odpovd jakmukoli jednotlivmu znaku ze seznamu; kdy
je prvnm znakem seznamu stka ^, potom seznam odpovd jakmukoli znaku
kter v seznamu nen. Napklad regulrn vraz [0123456789] odpovd jedn
libovoln slici. Rozsah znak lze specifikovat prvnm a poslednm znakem,
oddlenmi pomlkou. Odpovd jednomu znaku, kter je mezi uvedenmi dvma
znaky vetn, za pouit azen a znakov sady podle locale. Nap. ve vchozm
locale C je [a-d] ekvivalentn zpisu [abcd]. V mnoha locale jsou znaky
tdny slovnkov a typicky v nich [a-d] nen ekvivalentn [abcd]; me bt nap.
ekvivalentn [aBbCcDd]. Pro pouit tradin interpretace tchto vraz je mon
pout C locale nastavenm promnn prosted LC_ALL na hodnotu C. Jsou tak
pednastaveny nkter skupiny znak: [:alnum:], [:alpha:], [:cntrl:],
[:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:],
[:upper:] a [:xdigit:] jsou postupn psmena a slice, psmena, kontroln
znaky, slice, obrzkov znaky, mal psmena, tisknuteln znaky, interpunkn
znamnka, mezery, velk psmena a slice estnctkov soustavy. Napklad
[[:alnum:]] je stejn jako [0-9A-Za-z], a na to, e druh vzor zvis na C
locale kdovn znak ASCII, zatmco prvn je nezvisl na locale i znakov sad
(zvorky v nzvech skupin jsou soust jejich symbolickch jmen a mus bt
uveden uvnit zvorek uzavrajcch seznam). Vtina metaznak ztrc v sez-
namech svj zvltn vznam. K pidn znaku ] do seznamu sta uvst ho jako
prvn. Podobn znak ^ sta uvst na jinm ne prvnm mst. Konen znak - se
uvede jako posledn.
Teka . odpovd jednomu libovolnmu znaku. Znak \w je synonymem pro
[[:alnum:]] a \W je synonymem pro [^[:alnum]].
Stka ^ a znak dolaru $ jsou metaznaky, kter odpovdaj przdnmu etzci na
zatku, resp. na konci dku. Symboly \< a \> oznauj przdn etzce na
zatku, resp. na konci slova. Symbol \b odpovd przdnmu etzci na hranici
slova a \B odpovd przdnmu etzci kter nen na hranici slova.
Regulrn vraz me mt za sebou jeden z opakovacch opertor:
? Pedchzejc poloka je voliteln a obsaen nejve jednou (tj. jednou
nebo ani jednou).
* Pedchzejc poloka je voliteln a obsaen v libovolnm potu (tj.
nula- nebo vcekrt).
+ Pedchzejc poloka je obsaena jednou nebo vcekrt.
{n} Pedchzejc poloka je obsaena prv n krt.
{n,} Pedchzejc poloka je obsaena n nebo vcekrt.
{n,m} Pedchzejc poloka je obsaena alespo n krt, ale ne vce ne m krt.
Dva regulrn vrazy se daj pmo spojit; vsledn regulrn vraz odpovd libo-
volnmu etzci vzniklmu spojenm dvou jinch, kter odpovdaj pvodnm dvma
regulrnm vrazm.
Dva regulrn vrazy lze sloit pevnm opertorem |; vsledn regulrn vraz
odpovd etzci, kter se shoduje s ktermkoliv z uvedench regulrnch vraz.
Opakovn m pednost ped spojenm, kter m zase pednost ped stdnm. Cel pod-
vraz sta uzavt do zvorek aby se tato pednost zruila.
Zptn odkaz \n, kde n je slice, odpovd podetzci, kter byl pedtm porovnvn
a vyhodnocen jako shodn s n-tm podvrazem oddlenm zvorkami od zbytku
regulrnho vrazu.
V zkladnch regulrnch vrazech ztrcej metaznaky ?, +, {, |, (, a ) sv
zvltn vznamy; msto nich se daj pout verze se zptnm lomtkem \?, \+, \{,
\|, \(, a \).
Tradin egrep nepodporoval metaznak { a nkter implementace egrep msto
toho podporovaly \{. Penositeln skripty by tedy nemly { ve vzorech pro
egrep pouvat a msto toho k porovnn se znakem { pouvat seznam s jedinm
znakem [{].
GNU egrep se sna tradin zpsob pouit podporovat tak, e { nebere jako
metaznak, pokud by ml bt zatkem chybn specifikace rozsahu. Napklad
pkaz egrep '{1' hled dvouznakov etzec {1 msto toho, aby hlsil chybu
syntaxe v regulrnm vrazu. POSIX.2 dovoluje toto chovn jako rozen, ale
penositeln skripty by na nj nemly spolhat.
Hovn grepu je ovlivnno nsledujcmi promnnmi prosted:
Locale LC_foo je ureno prozkoumnm promnnch prosted LC_ALL, LC_foo,
LANG, v uvedenm poad. Prvn z nich, kter je nastaven, ur locale. Nap-
klad pokud nen nastavena LC_ALL, ale LC_MESSAGES je nastavena na pt_BR,
je pro LC_MESSAGES locale pouita brazilsk portugaltina. C locale je
pouito pouze tehdy, kdy nen nastavena dn z tchto promnnch prosted nebo
pokud nen nainstalovn katalog locale nebo pokud byl grep zkompilovn bez
podpory nrodnch jazyk (NLS).
GREP_OPTIONS
Tato promnn nastavuje vchoz volby, kter se pidaj na zatek dalch
dodatench voleb. Napklad kdyby GREP_OPTIONS bylo '--binary-
files=without-match --directories=skip', grep by se choval, jako
kdyby volby --binary-files=without-match a --directories=skip
byly uveden ped ostatnmi dodatenmi volbami. Nastaven voleb jsou
oddlen blmi znaky (nap. mezerami nebo tabultory). Zptn lomtko
escapuje znaky, take jej lze pout pro volbu obsahujc bl znaky
nebo zptn lomtka.
GREP_COLOR
Uruje znaku pro zvrazovn.
LC_ALL, LC_COLLATE, LANG
Tyto promnn nastavuj locale LC_COLLATE, kter uruje azen pouvan
pi interpretaci vraz s rozsahy jako [a-z].
LC_ALL, LC_CTYPE, LANG
Tyto promnn nastavuj locale LC_CTYPE, kter uruje typy znak, nap.
kter znaky jsou bl znaky.
LC_ALL, LC_MESSAGES, LANG
Tyto promnn nastavuj locale LC_MESSAGES urujc jazyk, kterm bude
grep tisknout hlen. Vchoz C locale pouv americkou anglitinu.
POSIXLY_CORRECT
Pokud je nastaveno, grep se chov podle poadavk POSIX.2; jinak se
grep chov vce jako ostatn programy GNU. POSIX.2 vyaduje, aby
volby nsledujc za jmny soubor byly brny u jen jako jmna soubor;
normln se takov volby pesunou na zatek seznamu parametr a berou
se jako volby. POSIX.2 dle vyaduje aby se neznm volby pokldaly
za "ilegln", ale protoe nejsou tak pln protizkonn, normln se
prohls za "invalidn". POSIXLY_CORRECT tak ru _N_GNU_nonop-
tion_argv_flags_ popsan dle.
_N_GNU_nonoption_argv_flags_
(Zde N je slo procesu grep). Jestlie hodnota i-tho znaku tto
promnn je 1, neber i-t parametr grep jako volbu, i kdyby to
vypadalo, e to volba je. Shell me dt tuto promnnou do prosted
pro kad pkaz kter spout, aby uril, kter parametry jsou vsledkem
rozvinut jmen soubor "olkovmi" znaky (* a ?) a nemaj bt brny
jako volby. Toho chovn je mon jen s knihovnou GNU C a jen kdy
nen nastaveno POSIXLY_CORRECT.
Normln je vstupn hodnota 0, kdy jsou nalezeny shody nebo 1 kdy dn
nalezeny nejsou. Vstupn hodnota je 2, pokud dolo k chyb, ledae byla
pouita volba -q nebo --quiet nebo --silent a byla nalezena odpovdajc
dka.
Hlen o chybch poslejte na bug-grep [AT] gnu.org (anglicky). Velk poty
opakovn v konstrukci {m,n} mou vst k tomu, e grep pouije dost pamti.
Navc nkter jin neobvykl regulrn vrazy maj exponenciln nroky na as a
prostor a mohou zpsobit, e grep spotebuje vechnu pam.
Zptn odkazy jsou velmi pomal a doba jejich zpracovn me rst exponenciln.
GNU Project 2002/01/22 GREP(1)