grep

Možná hledáte: Grapefruit, druh ovoce.
grep
VývojářKen Thompson
Operační systémUnix
UN*X
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet z datové položky.

grep je počítačový program s rozhraním pro příkazový řádek původně psaný pro operační systém Unix, nyní je dostupný i pro většinu systémů Unixového typu (například Linux, FreeBSD, Mac OS a další). Načte textová data ze souborů nebo standardního vstupu a na základě regulárního výrazu vypíše na standardní výstup řádky, které danému regulárnímu výrazu vyhovují.[1][2]

Historie

Grep byl původně vytvořen Kenem Thompsonem jako samostatná aplikace z parseru regulárních výrazů pro ed (který také vytvořil).[3]

Název pochází z příkazu edu:

g/re/p

znamená „search globally for lines matching the regular expression re, and print them“ – najdi řádek vyhovující regulárnímu výrazu a vypiš ho.[4][5] Poprvé se grep objevil v manuálu Unixu verze 4, 3. březen 1973.[6]

Příklady

Najde všechny soubory v aktuálním adresáři obsahující řetězec „foo“:

grep foo *

Najde všechny soubory v aktuálním adresáři (reprezentovaný tečkou „.“) a podadresářích obsahující řetězec „foo“:

grep -r foo .

Totéž co předchozí, ale pouze vypíše názvy souborů obsahující řetězec:

grep -rl foo .

Použití

Grep vyhledává v souborech předaných jako parametr, pokud parametr chybí hledá ve standardním vstupu. Ve výchozím nastavení vypisuje vyhovující řádky na standardní výstup, ale program může přijímáním parametrů měnit funkčnost.

Jednoduchý příklad běžného použití grepu, hledá v souboru fruitlist.txt řádky obsahující textový řetězec apple:

$ grep apple fruitlist.txt

Vyhovující řetězec se objeví pokud je rozpoznána sekvence znaků, například řádky obsahující pineapple nebo apples jsou také vytištěny i přes to že se řetězec apple vyskytuje uvnitř slova. Grep je ve výchozím nastavení náchylný na velikost písmen, tudíž řádky obsahující Apple (s velkým písmenem) nebudou vytištěny pokud zároveň neobsahují apple. Pro nenáchylnost na velikost písmen je potřeba přidat parametr -i (ignore case).

Příkaz může přebírat vícero souborů v seznamu argumentů. Například, všechny soubory mající koncovku .txt v daném adresáři mohou být prohledány pomocí hvězdičky jako součást jména souboru pokud terminál obsahuje podporu žolíkových znaků:

$ grep apple *.txt

Pro hledání (mnohem) složitějších frází mohou být použity regulární výrazy. Následující příkaz vytiskne všechny řádky ze souborů které začínají písmenem a, následovaným jakýmkoliv písmenem a pokračujícím ple.

$ grep ^a.ple fruitlist.txt

Jako většina Unixových příkazů, i grep přijímá argumenty příkazové řádky pro změnu nastavení a chování. Například argument -l (malé písmeno L) poskytuje seznam souborů obsahující poskytnutý řetězec místo toho, aby vytiskl inkriminované řádky.

Vytisknutí řádků obsahující pouze slovo apple ohraničené bílými znaky nebo uvozovkami, může být dosaženo předáním volby -w.

Pokud chceme pouze řádky které celé přesně vyhovují podmínce, používá se volba -x. Řádky obsahující jen a pouze slovo apple jsou nalezeny právě volbou -x.

$ cat fruitlist.txt #vypsání souboru
apple
apples
pineapple
apple-
apple-fruit
fruit-apple
 
$ grep -x apple fruitlist.txt #nalezení
apple 

Volba -v zneguje výsledek vyhledávání a vytiskne řádky neobsahující slovo apple.

$ grep -v apple fruitlist.txt
banana
pear
peach
orang

Varianty

K dispozici je mnoho variant grepu napříč operačními systémy nástroji pro vývoj software. Rané varianty jako egrepfgrep byly představeny v Unixu verze 7. Příkaz egrep používá rozšířenou syntaxi regulárních výrazů která byla do Unixu přidána po verzi Kena Thompsona. Příkaz fgrep vyhledává kterýkoliv obyčejný řetězec v daném seznamu za použití algoritmus Aho-Corasick. Tyto varianty přežívají v moderní implementaci grepu jako jeho parametry (a standardizovány jako -E a -F v normě POSIX[7])) a jako aliasy tohoto příkazu. Tyto aliasy se používají aby simulovaly zaniklé implementace grepu.

Další příkazy obsahují slovo „grep“ jako indikaci, že program něco vyhledává. Příkladem budiž utilita pgrep, vyhledávající v běžících procesech, které odpovídají regulárnímu výrazu.

Ve skriptovacím jazyku Perl se používá „grep“ jako název integrované funkce pro hledání prvků v seznamu. Tato funkce se ve funkcionálním programování obvykle označuje jako filtr.

Příkaz pcegrep je implementace grepu používající syntaxi regulárních výrazů z Perlu. Tato funkcionalita může být v grepu vyvolána parametrem -P.[8]

Grep byl také portován na platformu Microsoft Windows (například pomoci CygwinGnuWin32). Některé verze Windows nabízí podobnou funkcionalitu s příkazy qgrep nebo Findstr.[9]

Reference

V tomto článku byl použit překlad textu z článku grep na anglické Wikipedii.

  1. Hauben et al. 1997, Ch. 9
  2. RAYMOND, Eric. Jargon File [online]. [cit. 2006-06-29]. Dostupné online. 
  3. KERNIGHAN, Brian. The Unix Programming Environment. [s.l.]: Prentice Hall, 1984. Dostupné online. ISBN 0-13-937681-X. S. 102. Je zde použita šablona {{Cite book}} označená jako k „pouze dočasnému použití“.
  4. http://perl.plover.com/classes/HoldSpace/samples/slide012.html
  5. http://robots.thoughtbot.com/how-grep-got-its-name
  6. http://minnie.tuhs.org/cgi-bin/utree.pl?file=V4/man/man1/grep.1
  7. grep – Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
  8. http://linux.die.net/man/1/grep
  9. SPALDING, George. Windows 2000 administration. [s.l.]: Osborne/McGraw-Hill, 2000. (Network professional's library). Dostupné online. ISBN 978-0-07-882582-8. S. 634. Je zde použita šablona {{Cite book}} označená jako k „pouze dočasnému použití“.

Externí odkazy


Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/Grep
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.