Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

grep

Z Wikipedie, otevřené encyklopedie
Možná hledáte:Grapefruit, druhovoce.
grep
VývojářKen Thompson
Operační systémUnix
UN*X
Typ softwarustandardní UNIXová utilita či příkaz
Některá data mohou pocházet zdatové položky.

grep jepočítačový program s rozhraním propříkazový řádek původně psaný pro operační systémUnix, nyní je dostupný i pro většinu systémů Unixového typu (napříkladLinux,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

[editovat |editovat zdroj]

Grep byl původně vytvořenKenem Thompsonem jako samostatná aplikace z parseruregulárních výrazů proed (který také vytvořil).[3]

Název pochází z příkazuedu:

g/re/p

znamená „searchglobally for lines matching theregularexpressionre, andprint 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

[editovat |editovat zdroj]

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í

[editovat |editovat zdroj]

Grep vyhledává v souborech předaných jako parametr, pokud parametr chybí hledá vestandardním vstupu. Ve výchozím nastavení vypisuje vyhovující řádky nastandardní 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 souborufruitlist.txt řádky obsahující textový řetězecapple:

$ grep apple fruitlist.txt

Vyhovující řetězec se objeví pokud je rozpoznána sekvence znaků, například řádky obsahujícípineapple neboapples jsou také vytištěny i přes to že se řetězecapple 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částjména souboru pokudterminál obsahuje podporužolíkových znaků:

$ grep apple *.txt

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

$ 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 slovoapple 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 slovoapple jsou nalezeny právě volbou-x.

$ cat fruitlist.txt #vypsání souboruappleapplespineappleapple-apple-fruitfruit-apple $ grep -x apple fruitlist.txt #nalezeníapple

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

$ grep -v apple fruitlist.txtbananapearpeachorang

Varianty

[editovat |editovat zdroj]

K dispozici je mnoho variant grepu napříčoperačními systémy nástroji pro vývoj software. Rané varianty jakoegrepfgrep byly představeny v Unixu verze 7. Příkazegrep používá rozšířenou syntaxi regulárních výrazů která byla do Unixu přidána po verziKena Thompsona. Příkazfgrep 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 jakoaliasy 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ž utilitapgrep, vyhledávající v běžících procesech, které odpovídají regulárnímu výrazu.

Ve skriptovacím jazykuPerl se používá „grep“ jako název integrované funkce pro hledání prvků v seznamu. Tato funkce se vefunkcionálním programování obvykle označuje jakofiltr.

Příkazpcegrep 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 platformuMicrosoft Windows (například pomociCygwinGnuWin32). Některé verze Windows nabízí podobnou funkcionalitu s příkazyqgrep neboFindstr.[9]

Reference

[editovat |editovat zdroj]

V tomto článku byl použitpřeklad textu z článkugrep na anglické Wikipedii.

  1. Hauben et al. 1997, Ch. 9
  2. RAYMOND, Eric.Jargon File: Grep [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 fromThe 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

[editovat |editovat zdroj]
Příkazy a programypříkazové řádkyUnixu (více)
Správa souborů

catchattrcdchmodchownchgrpcksumcmpcpdudffilefsckfuserlnlslsattrlsofmkdirmountmvpwdrmrmdirsplittouch

Správa procesů

atchrootcrontabexitkillkillallnicepgreppidofpkillpspstreesleeptimetopwaitwatch

Správa uživatelů a prostředí

envfingeridlognamemesgpasswdsusudounameuptimewwallwhowhoamiwrite

Zpracování textu

awkcommcsplitcutdiffedexfmtheadiconvjoinlessmorepatchpastereadsedsorttactailteetruniqwcxargs

Programování vshellu

aliasbasenameechoexprfalseprintftesttrueunset

Síťová komunikace
Hledání
Ostatní

bannerbccaldateddlooklpmansizeyes

Autoritní dataEditovat na Wikidatech
Portály:Svobodný software
Citováno z „https://cs.wikipedia.org/w/index.php?title=Grep&oldid=24445972
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp