Obcování s ďáblem 21:K čemu je dobrý grep... - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Soutěž

Sponzorem soutěže je:

IDIF

 

Jaký fotograf/ka získal/a cenu za nejpopulárnější příspěvek v Nikon Photo Contest?

V dnešní soutěži hrajeme o:

Seriály

Více seriálů



Software

Obcování s ďáblem 21:K čemu je dobrý grep...

13. prosince 2001, 00.00 | V několika předcházejících dílech jsme se zabývali regulárními výrazy. Teď se seznámíme s některými příkazy, jež s regulárními výrazy pracují, a umožňují nám jejich sílu využít. První grep

V několika předcházejících dílech jsme se zabývali regulárními výrazy. Teď se seznámíme s některými příkazy, jež s regulárními výrazy pracují, a umožňují nám jejich sílu využít.

Asi nejjednodušší jsou příkazy grep, fgrep a egrep. V principu jde pořád o jeden a ten samý příkaz, který vybírá ze zadaných souborů (nebo ze standardního vstupu) ty řádky, které odpovídají zvolenému regulárnímu výrazu — vzpomeňme si na příklady hledání citátů Shakespeara, třeba ve dvanáctém dílu:

126> grep Polonius Hamlet/* | grep Ophelia | grep -v Rosencrantz
Hamlet/1.2:             as Polonius, his son Laertes and daughter Ophelia,\
127> 

Dnes se podrobněji seznámíme s různými přepínači a modifikátory grepu, o kterých jsme se dříve zmiňovali jen zběžně.

Grep je grep je grep

Ačkoli máme k dispozici tři různé příkazy, ve skutečnosti jde o jeden jediný program — fgrep je ekvivalentní příkazu "grep -F"; podobně egrep odpovídá příkazu "grep -E". Rozdíl mezi grepem a egrepem už známe: spočívá jen v tom, že grep pracuje se základními regulárními výrazy a egrep s rozšířenými.

Trochu jinak je tomu s příkazem fgrep. Ten vlastně regulární výrazy jako takové ani neumí — regulárním výrazem pro něj je fixní (proto "-f") textový řetězec, nebo nanejvýš několik řetězců ve významu "nebo" (oddělených konci řádků, ne znaky '|'!). Díky tomuto omezení však nad rozsáhlým vstupem umí být o poznání rychlejší, než "normální grepy".

Suma sumárum, v nejběžnějších případech, kdy hledáme pouze pevný řetězec (jako tomu bylo třeba ve výše uvedeném příkladu s Hamletem) je vhodné používat fgrep. Kdykoli jindy si vybereme grep nebo egrep podle toho, zda nám pro daný účel lépe vyhovují základní nebo rozšířené regulární výrazy.

Základní přepínače

Mezi nejčastěji používané přepínače příkazů grep patří

  • "-a": zpracovat libovolný soubor jako textový. Příkaz grep si občas splete soubory, obsahující české znaky, s binárními; proto bývá tento přepínač šikovný;
  • "-c": spočítat vypsané řádky. Téhož efektu bychom samozřejmě mohli dosáhnout přesměrováním výstupu grepu do příkazu "wc -l", ale tohle je kratší a rychlejší;
  • "-f soubor": regulární výraz není zadán v příkazovém řádku, ale načte se ze zadaného souboru. Ten může obsahovat více výrazů na více řádcích;
  • "-i": nerozlišovat malá a velká písmena;
  • "-l": namísto nalezených řádků vypisovat jen jména souborů, jež obsahují alespoň jeden nalezený řádek;
  • "-q" a "-s": nevypisovat nic (-s potlačí i chybová hlášení). To je výhodné, pokud používáme příkaz grep jen pro jeho návratovou hodnotu (0 — tj. "v pořádku" — když se něco našlo), jak jsme si několikrát ukázali v souvislosti s příkazem find např. v patnáctém dílu;
  • "-v": invertovat, tj. naleznou se jen ty řádky, které regulárnímu výrazu neodpovídají.

Grep už vlastně dobře známe...

...protože skutečně patří mezi nejběžnější příkazy, a proto jsme jej používali v příkladech už dávno. Dnes jsme se toho tedy vlastně moc nedozvěděli; příště se zato podíváme na jeden z nejsilnějších příkazů vůbec — na dávkový editor sed.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Tipy a Triky  

 » Rubriky  » Začínáme s  

 » Rubriky  » Software  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Zatím nebyl uložen žádný příspěvek, buďte první.

 

 

Vložit nový příspěvek

Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: