Provided by: manpages-cs_0.17.20080113-1_all bug

JMÉNO

       grep, egrep, fgrep - tiskne řádky, které odpovídají zadanému vzoru

PŘEHLED

       grep [volby] VZOR [SOUBOR...]
       grep [volby] [-e VZOR | -f SOUBOR] [SOUBOR...]

POPIS

       Grep  prohledává  zadaný  vstup  SOUBOR  (nebo  standardní vstup, pokud
       nejsou zadány žádné soubory nebo je  zadán  soubor  -)  a  hledá  řádky
       obsahující  zadaný  VZOR.   Ve  výchozím nastavení grep vypisuje řádky,
       které vzoru odpovídají.

       Dostupné jsou navíc dvě varianty programu -  egrep  a  fgrep.   Chování
       programu egrep je stejné jako grep -E, chování programu fgrep je stejné
       jako grep -F.

VOLBY

       -A POET, --after-context=POET
              Tiskni POET řádků, které následují po  platném  (odpovídajícím)
              řádku.   Mezi  souvislé  platné výsledky vkládá řádky obsahující
              --.

       -a, --text
              Pracuj s binárním souborem jako by to byl text;  ekvivalentní  k
              volbě --binary-files=text.

       -B POET, --before-context=POET
              Tiskni  POET  řádků  které  předcházejí  platnému  řádku.  Mezi
              souvislé platné výsledky vkládá řádky obsahující --.

       -C POET, --context=POET
              Tiskni POET řádků ke každému  platnému  řádku.   Mezi  souvislé
              platné výsledky vkládá řádky obsahující --.

       -b, --byte-offset
              Tiskni  offset  bajtu  ve  vstupním  souboru  před každým řádkem
              výstupu.

       --binary-files=TYP
              Jestliže podle prvních několika bajtů  obsahuje  soubor  binární
              data,  předpokládej, že je typu TYP.  Výchozím nastavením TYP je
              binary a grep standardně vypíše  buď  jednořádkovou  zprávu,  že
              binární  soubor  odpovídá,  nebo žádnou zprávu pokud neodpovídá.
              Jestliže je TYP  without-match,  grep  předpokládá,  že  binární
              soubory  neodpovídají;  je to stejné jako volba -I.  Jestliže je
              TYP text, grep zpracovává binární soubor, jako by to  byl  text;
              stejné  jako  volba  -a.   Pozor:  grep --binary-files=text může
              způsobit, že se budou vypisovat  nesmyslné  binární  znaky,  což
              může mít nepříjemné vedlejší účinky pokud je výstupem terminál a
              ovladač  terminálu  začne  některé  znaky   interpretovat   jako
              příkazy.

       --colour[=KDY], --color[=KDY]
              Obklopí  platný řetězec značkou z proměnné prostředí GREP_COLOR.
              KDY může být `never', `always' nebo `auto'

       -c, --count
              Potlač normální výstup; místo toho  napiš  počet  odpovídajících
              řádků  pro  každý  vstupní  soubor.  S volbou -v, --invert-match
              (viz níže), počítej neodpovídající řádky.

       -D AKCE, --devices=AKCE
              Pokud je vstupním souborem zařízení, FIFO  nebo  socket,  použij
              AKCI  k  jeho  zpracování.  Výchozím nastavením AKCE je read, to
              znamená, že zařízení se čtou jako  by  to  byly  běžné  soubory.
              Jestliže AKCE je skip, zařízení se mlčky přeskočí.

       -d AKCE, --directories=AKCE
              Pokud   je   vstupním  souborem  adresář,  použij  AKCI  k  jeho
              zpracování. Výchozím nastavením AKCE je  read,  to  znamená,  že
              adresáře  se  čtou jako by to byly běžné soubory.  Jestliže AKCE
              je skip, adresáře se mlčky přeskočí.  Jestliže AKCE je  recurse,
              grep  čte  rekurzivně  všechny  soubory v každém adresáři; je to
              stejné jako volba -r.

       -E, --extended-regexp
              Považuj VRAZ za rozšířený regulární výraz (viz níže).

       -e VRAZ, --regexp=VRAZ
              Jako  vzor  použij   VRAZ;   užitečné   pro   zachování   vzorů
              začínajících -.

       -F, --fixed-strings
              Považuj  VRAZ  za seznam pevných řetězců oddělených znaky konce
              řádku, ze kterých může odpovídat kterýkoliv.  -P,  --perl-regexp
              Považuj VRAZ za regulární výraz Perlu.

       -f SOUBOR, --file=SOUBOR
              Načte  vzory  ze souboru SOUBOR, na každém řádku jeden.  Prázdný
              soubor obsahuje nula vzorů a tedy neodpovídá ničemu.

       -G, --basic-regexp
              Považuj VRAZ za základní regulární výraz (viz  níže).  Toto  je
              výchozí nastavení.

       -H, --with-filename
              Tiskni jméno souboru pro každou shodu.

       -h, --no-filename
              Potlač  vkládání  jmen  souborů do výstupu při prohledávání více
              souborů.

       --help Vytiskni stručnou nápovědu.

       -I     Zpracuj binární soubor jako by neobsahoval shody; to  je  stejné
              jako volba --binary-files=without-match.

       -i, --ignore-case
              Nerozlišuj  velká  a  malá  písmena  ve  VRAZU ani ve vstupních
              souborech.

       -L, --files-without-match
              Potlač normální výstup; místo toho tiskni jméno každého souboru,
              ze kterého by se jinak žádný výstup netiskl. Prohledávání skončí
              s první shodou.

       -l, --files-with-matches
              Potlač normální výstup; místo toho tiskni jméno každého souboru,
              ze  kterého by se jinak tiskl nějaký výstup. Prohledávání skončí
              s první shodou.

       -m POET, --max-count=POET
              Přestaň číst soubor po dosažení POTU odpovídajících řádků.  Je-
              li vstupem standardní vstup z obyčejného souboru, a je vytištěno
              POET odpovídajících řádků, grep zajistí,  že  standardní  vstup
              bude  před  ukončením  nastaven právě po posledním odpovídajícím
              řádku, bez ohledu na přítomnost  následujících  řádků  kontextu.
              Tak je možné, aby volající proces hledání obnovil.  Když grep po
              dosažení  POTU  odpovídajících  řádků  zastaví,  vypíše   řádky
              kontextu,  které  následují.   Pokud je zároveň použita volba -c
              nebo --count, program grep nevypíše  více  shod  než  je  POET.
              Pokud  je  zároveň použita volba -v nebo --invert-match program,
              grep skončí po vypsání POTU neodpovídajících řádků.

       --mmap Pokud je to možné, použij  systémové  volání  mmap(2)  ke  čtení
              vstupních  dat,  místo výchozího read(2).  V některých případech
              může --mmap zlepšit výkon. Na druhou stranu --mmap může způsobit
              nedefinované  chování  (včetně  core  dump), jestliže se vstupní
              soubor za běhu programu grep zmenší  nebo  pokud  nastane  chyba
              vstupu/výstupu.

       -n, --line-number
              Před každý řádek výstupu přidej jeho číslo v příslušném vstupním
              souboru.

       -o, --only-matching
              Vypisuj jen tu část  odpovídajícího  řádku,  která  je  odpovídá
              VZORU.

       --label=LABEL
              Zobrazuj   vstup   pocházející  ze  standardního  vstupu  jakoby
              pocházel ze souboru LABEL.  To je zvláště užitečné pro  nástroje
              jako je zgrep, např.  gzip -cd foo.gz |grep --label=foo něco

       --line-buffering
              Použij line buffering, může negativně ovlivnit výkon.

       -q, --quiet, --silent
              Tiše;  potlač  normální  výstup.  Prohledávání  skončí  s  první
              shodou, s návratovou  hodnotou  nula,  i  když  byla  detekována
              nějaká  chyba.   Viz  také  volba  -s nebo --no-messages uvedená
              dále.

       -R, -r, --recursive
              Rekurzivně načti všechny soubory v každém adresáři; to je stejné
              jako volba -d recurse.

         --include=VZOR
              Rekurzivně   procházej   adresáře,   prohledávej  pouze  soubory
              odpovídající VZORU.

         --exclude=VZOR
              Rekurzivně  procházej  adresáře,  přeskoč  soubory  odpovídající
              VZORU.

       -s, --no-messages
              Potlač   chybové   hlášky   o  neexistujících  nebo  nečitelných
              souborech.  Poznámka o přenositelnosti: na rozdíl od GNU  grepu,
              tradiční  grep  neodpovídal  specifikaci  POSIX.2, protože neměl
              volbu -q a jeho volba -s se chovala jako  volba  -q  GNU  grepu.
              Shellové  skripty  které mají být přenositelné na tradiční grep,
              by se měly voleb -q a -s  vyvarovat  a  přesměrovat  místo  toho
              výstup do /dev/null.

       -U, --binary
              Pracuj se soubory jako s binárními. Normálně typ souboru pod MS-
              DOS a MS-Windows určuje grep tak, že se podívá na  prvních  32KB
              dat  přečtených  ze  souboru.  Když  grep rozhodne, že soubor je
              textový, vynechá z původního obsahu  znaky  CR  (aby  nepřestaly
              správně  fungovat  regulární výrazy obsahující ^ a $ ). Uvedením
              volby -U se toto pravidlo ruší  a  všechny  soubory  se  předají
              porovnávacímu  mechanismu doslovně. Pokud obsahuje soubor text s
              páry CR/LF na koncích řádků, způsobí to,  že  některé  regulární
              výrazy  přestanou  fungovat.  Tato  volba  nemá  žádný účinek na
              platformách jiných než MS-DOS a MS-Windows.

       -u, --unix-byte-offsets
              Hlásit offsety jako v Unixu. Tento  přepínač  zajistí,  že  grep
              bude  tisknout offsety bajtů jako by soubor byl textový soubor v
              Unixu, tedy bez znaků CR.  To znamená, že  výsledky  grep  budou
              stejné  jako  v  systému  Unix.  Tato volba nemá žádný efekt bez
              současného použití volby -b;  také  nemá  efekt  na  platformách
              jiných než MS-DOS a MS-Windows.

       -V, --version
              Vytiskni  verzi  programu  grep na chybový výstup. Verze by měla
              být uvedena ve všech hlášeních chyb (viz níže).

       -v, --invert-match
              Převrať  význam  shody  -  vyberou   se   řádky,   které   vzoru
              neodpovídají.

       -w, --word-regexp
              Vyber  jen  řádky  ve  kterých se shoduje celé samostatné slovo.
              Odpovídající řetězec musí být buď na začátku řádku nebo mít před
              sebou  znak  který  se  nebere  jako součást slova. Podobně musí
              řetězec být buď na konci řádku nebo za ním musí následovat  znak
              který  se  nebere jako součást slova. Znaky které se považují za
              části slov jsou písmena, číslice a podtržítko.

       -x, --line-regexp
              Vyber jen shody zahrnující celý řádek.

       -y     Zastaralá alternativa pro -i.

       -Z, --null
              Vytiskni  nulový  bajt  (znak  ASCII  NUL)  místo  znaku,  který
              normálně  následuje  po jménech souborů. Například grep -lZ píše
              nulový bajt po každém názvu souboru místo obvyklého znaku  konce
              řádku.  Tato volba zajistí jednoznačnost výstupu i v případě, že
              názvy souborů obsahují neobvyklé znaky jako znaky  konce  řádku.
              Tuto  volbu  lze  použít pro příkazy jako find -print0, perl -0,
              sort -z a xargs  -0,  ke  zpracování  libovolných  jmen  souborů
              včetně těch, které obsahují znaky konce řádku.

REGULÁRNÍ VÝRAZY

       Regulární  výraz  je  vzor,  který  popisuje množinu řetězců. Regulární
       výrazy  se  píší  (podobně  jako  aritmetické  výrazy)  pomocí  různých
       operátorů, které dávají dohromady menší výrazy.

       Grep  zná  dvě  různé  verze syntaxe pro regulární výrazy: "základní" a
       "rozšířené." Pro GNU grep není v těchto dvou verzích žádný rozdíl co se
       týče funkčnosti. V jiných implementacích jsou základní regulární výrazy
       slabší. Následující popis platí pro rozšířené regulární výrazy; rozdíly
       pro základní regulární výrazy jsou uvedeny na konci.

       Základním  stavebním  kamenem  jsou  regulární výrazy, které odpovídají
       jedinému znaku. Většina znaků, včetně všech písmen a číslic, jsou  samy
       o  sobě  regulárními  výrazy, které se shodují samy se sebou. Kterýkoli
       metaznak se zvláštním významem může být uveden ve svém původním významu
       tak, že se před něj napíše zpětné lomítko.

       Seznam znaků v [ a ] odpovídá jakémukoli jednotlivému znaku ze seznamu;
       když  je  prvním  znakem  seznamu  stříška  ^,  potom  seznam  odpovídá
       jakémukoli  znaku  který  v  seznamu  nen.   Například regulární výraz
       [0123456789]  odpovídá  jedné  libovolné  číslici.  Rozsah  znaků   lze
       specifikovat  prvním  a posledním znakem, oddělenými pomlčkou. Odpovídá
       jednomu znaku, který je mezi uvedenými dvěma znaky včetně,  za  použití
       řazení  a  znakové  sady  podle  locale.  Např. ve výchozím locale C je
       [a-d] ekvivalentní zápisu [abcd].  V mnoha locale  jsou  znaky  tříděny
       slovníkově  a  typicky  v nich [a-d] není ekvivalentní [abcd]; může být
       např. ekvivalentní [aBbCcDd].  Pro použití tradiční interpretace těchto
       výrazů je možné použít C locale nastavením proměnné prostředí LC_ALL na
       hodnotu C.  Jsou také přednastaveny některé skupiny  znaků:  [:alnum:],
       [:alpha:],   [:cntrl:],  [:digit:],  [:graph:],  [:lower:],  [:print:],
       [:punct:], [:space:], [:upper:] a [:xdigit:] jsou  postupně  písmena  a
       číslice,  písmena,  kontrolní  znaky,  číslice,  obrázkové  znaky, malá
       písmena,  tisknutelné  znaky,  interpunkční  znaménka,  mezery,   velká
       písmena  a  číslice  šestnáctkové  soustavy.   Například [[:alnum:]] je
       stejné jako [0-9A-Za-z], až na to, že druhý vzor  závisí  na  C  locale
       kódování  znaků  ASCII,  zatímco první je nezávislý na locale i znakové
       sadě (závorky v názvech skupin jsou součástí jejich symbolických jmen a
       musí   být  uvedené  uvnitř  závorek  uzavírajících  seznam).   Většina
       metaznaků ztrácí v seznamech svůj zvláštní význam. K přidání znaku ] do
       seznamu  stačí uvést ho jako první. Podobně znak ^ stačí uvést na jiném
       než prvním místě. Konečně znak - se uvede jako poslední.

       Tečka .  odpovídá jednomu libovolnému znaku.  Znak \w je synonymem  pro
       [[:alnum:]] a \W je synonymem pro [^[:alnum]].

       Stříška  ^  a  znak dolaru $ jsou metaznaky, které odpovídají prázdnému
       řetězci na začátku, resp. na konci řádku.  Symboly  \<  a  \>  označují
       prázdné  řetězce  na začátku, resp. na konci slova.  Symbol \b odpovídá
       prázdnému řetězci na hranici slova  a  \B  odpovídá  prázdnému  řetězci
       který nen na hranici slova.

       Regulární výraz může mít za sebou jeden z opakovacích operátorů:
       ?      Předcházející  položka  je  volitelná  a obsažená nejvýše jednou
              (tj. jednou nebo ani jednou).
       *      Předcházející položka je volitelná a obsažená v libovolném počtu
              (tj. nula- nebo vícekrát).
       +      Předcházející položka je obsažena jednou nebo vícekrát.
       {n}    Předcházející položka je obsažena právě n krát.
       {n,}   Předcházející položka je obsažena n nebo vícekrát.
       {n,m}  Předcházející  položka  je  obsažena alespoň n krát, ale ne více
              než m krát.

       Dva regulární výrazy se dají přímo  spojit;  výsledný  regulární  výraz
       odpovídá  libovolnému  řetězci  vzniklému  spojením  dvou jiných, které
       odpovídají původním dvěma regulárním výrazům.

       Dva regulární výrazy lze složit pevným operátorem |; výsledný regulární
       výraz  odpovídá  řetězci,  který  se  shoduje s kterýmkoliv z uvedených
       regulárních výrazů.

       Opakování má přednost  před  spojením,  které  má  zase  přednost  před
       střídáním.  Celý podvýraz stačí uzavřít do závorek aby se tato přednost
       zrušila.

       Zpětný odkaz \n, kde n  je  číslice,  odpovídá  podřetězci,  který  byl
       předtím   porovnáván  a  vyhodnocen  jako  shodný  s  n-tým  podvýrazem
       odděleným závorkami od zbytku regulárního výrazu.

       V základních regulárních výrazech ztrácejí metaznaky ?, +, {, |, (, a )
       své  zvláštní  významy;  místo  nich  se  dají  použít verze se zpětným
       lomítkem \?, \+, \{, \|, \(, a \).

       Tradiční egrep nepodporoval metaznak {  a  některé  implementace  egrep
       místo  toho  podporovaly  \{.  Přenositelné skripty by tedy neměly { ve
       vzorech pro egrep používat  a  místo  toho  k  porovnání  se  znakem  {
       používat seznam s jediným znakem [{].

       GNU  egrep se snaží tradiční způsob použití podporovat tak, že { nebere
       jako metaznak, pokud by měl být začátkem  chybné  specifikace  rozsahu.
       Například  příkaz  egrep  '{1' hledá dvouznakový řetězec {1 místo toho,
       aby hlásil chybu syntaxe v regulárním výrazu.   POSIX.2  dovoluje  toto
       chování  jako  rozšíření,  ale  přenositelné  skripty  by na něj neměly
       spoléhat.

PROMĚNNÉ PROSTŘEDÍ

       Hování grepu je ovlivněno následujícími proměnnými prostředí:

       Locale LC_foo  je  určeno  prozkoumáním  proměnných  prostředí  LC_ALL,
       LC_foo,  LANG,  v  uvedeném  pořadí.  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  použita  brazilská
       portugalština.  C locale je použito pouze tehdy,  když  není  nastavena
       žádná  z  těchto  proměnných  prostředí  nebo  pokud  není nainstalován
       katalog locale nebo pokud byl grep zkompilován  bez  podpory  národních
       jazyků (NLS).

       GREP_OPTIONS
              Tato  proměnná  nastavuje  výchozí  volby,  které  se přidají na
              začátek dalších dodatečných voleb. Například 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é  před  ostatními  dodatečnými
              volbami.  Nastavení voleb  jsou  oddělená  bílými  znaky  (např.
              mezerami nebo tabulátory).  Zpětné lomítko escapuje znaky, takže
              jej lze použít pro  volbu  obsahující  bílé  znaky  nebo  zpětná
              lomítka.

       GREP_COLOR
              Určuje značku pro zvýrazňování.

       LC_ALL, LC_COLLATE, LANG
              Tyto  proměnné  nastavují locale LC_COLLATE, které určuje řazení
              používané při interpretaci výrazů s rozsahy jako [a-z].

       LC_ALL, LC_CTYPE, LANG
              Tyto proměnné  nastavují  locale  LC_CTYPE,  které  určuje  typy
              znaků, např. které znaky jsou bílé znaky.

       LC_ALL, LC_MESSAGES, LANG
              Tyto  proměnné  nastavují  locale  LC_MESSAGES  určující  jazyk,
              kterým bude grep tisknout hlášení.   Výchozí  C  locale  používá
              americkou angličtinu.

       POSIXLY_CORRECT
              Pokud je nastaveno, grep se chová podle požadavků POSIX.2; jinak
              se grep chová více jako ostatní programy GNU.  POSIX.2 vyžaduje,
              aby  volby  následující  za jmény souborů byly brány už jen jako
              jména souborů; normálně se  takové  volby  přesunou  na  začátek
              seznamu  parametrů  a berou se jako volby. POSIX.2 dále vyžaduje
              aby se neznámé volby pokládaly za "ilegální", ale protože nejsou
              tak  úplně  protizákonné,  normálně  se prohlásí za "invalidní".
              POSIXLY_CORRECT také ruší  _N_GNU_nonoption_argv_flags_  popsané
              dále.

       _N_GNU_nonoption_argv_flags_
              (Zde  N  je  číslo procesu grep).  Jestliže hodnota i-tého znaku
              této proměnné je 1, neber i-tý parametr grep jako volbu, i kdyby
              to  vypadalo,  že  to volba je. Shell může dát tuto proměnnou do
              prostředí pro každý  příkaz  který  spouští,  aby  určil,  které
              parametry  jsou  výsledkem  rozvinutí  jmen souborů "žolíkovými"
              znaky (* a ?) a nemají být brány jako  volby.  Toho  chování  je
              možné   jen  s  knihovnou  GNU  C  a  jen  když  není  nastaveno
              POSIXLY_CORRECT.

NÁVRATOVÉ HODNOTY

       Normálně je výstupní hodnota 0, když jsou nalezeny shody  nebo  1  když
       žádné  nalezeny  nejsou.  Výstupní  hodnota  je 2, pokud došlo k chybě,
       ledaže byla použita volba -q nebo --quiet nebo --silent a byla nalezena
       odpovídající řádka.

CHYBY

       Hlášení  o  chybách  posílejte  na  bug-grep@gnu.org (anglicky).  Velké
       počty opakování v konstrukci {m,n} můžou vést k tomu, že  grep  použije
       dost  paměti.  Navíc  některé  jiné  neobvyklé  regulární  výrazy  mají
       exponenciální nároky na  čas  a  prostor  a  mohou  způsobit,  že  grep
       spotřebuje všechnu paměť.

       Zpětné  odkazy  jsou  velmi  pomalé  a doba jejich zpracování může růst
       exponenciálně.