grep

Grep pro více vzorů nebo řetězců

Grep pro více vzorů nebo řetězců
Global Regular Expression Print nebo Grep je výkonný nástroj používaný v operačním systému Linux. Prostřednictvím grep můžete vyhledávat ze souborů s různými vzory nebo řetězci pomocí omezení. Funkce Grep trvá hledání jednoho nebo více vstupních souborů v adresářích nebo podadresářích. K hledání mnoha vzorů používáme operátor OR. Tento operátor se používá k oddělení vzorů zapsaných v příkazu. Operátor změny „|“ se používá se zpětným lomítkem. Syntaxe pro vyhledávání různých regulárních výrazů je následující:

Syntax

$ grep 'pattern1 \ | pattern2' název souboru

Regulární výraz je vždy napsán v jedné citaci. Dvě jména jsou oddělena operátorem zpětného lomítka a alterace. Příkaz je ukončen názvem souboru. Při rekurzivním grepu se místo jednoho názvu souboru použije adresář nebo celá cesta.

Předpoklad

V tomto článku se naučíme funkčnost grepu při hledání více vzorů a řetězců. Z tohoto důvodu musíte mít ve svém virtuálním boxu spuštěný operační systém Linux. Musíte jej nainstalovat do svého systému. Po konfiguraci budete mít přístup k používání všech aplikací. Po přihlášení k uživateli zadáním hesla přejděte na příkazový řádek terminálového shellu a pokračujte.

Hledání podle více vzorů v souboru pomocí Grep

Pokud chceme prohledat více vzorů nebo řetězců v konkrétním souboru, použijte funkci grep pro třídění v souboru pomocí více než jednoho vstupního slova v příkazu. Používáme '\ |' operátory pro oddělení dvou vzorů v příkazu.

$ grep 'technická \ práce' filea.txt

Příkaz představuje, jak grep funguje. Oba zmíněné soubory budou prohledány v souboru.txt. Hledaná slova jsou zvýrazněna v celém textu výstupu.

Chcete-li vyhledat více než dvě slova, budeme je přidávat stejnou metodou.

$ grep 'graphic \ | photoshop \ | papers' fileb.txt

Prohledejte více řetězců podle ignorování velkých a malých písmen

Abychom pochopili koncept rozlišování malých a velkých písmen ve funkci grep v Linuxu, zvažte následující příklad. Na grep fungují dva příkazy. Jeden je s '-i' a druhý je bez. Tento příklad ukazuje rozdíly mezi příkazy. První ukazuje, že v daném souboru budou vyhledána dvě slova. Jak je však uvedeno v příkazu „Aqsa“, začíná velkým písmenem A. Nebude tedy zvýrazněn, protože v konkrétním souboru je tento text malými písmeny.

$ grep 'Aqsa \ | sestra' soubor20.txt

Zvažuje pouze slovo sestra, které bude vidět na výstupu.

Ve druhém příkladu jsme ignorovali citlivost na velká a malá písmena pomocí příznaku „-I“. Tato funkce prohledá obě slova a výstup bude zvýrazněn. Ať už je slovo „Aqsa“ napsáno velkými písmeny nebo ne, grep bude hledat stejnou shodu v textu uvnitř souboru. Oba příkazy jsou tedy svým způsobem užitečné.

$ grep -I 'Aqsa \ | sestra' soubor20.txt

Počítání více shod v souboru

Funkce Count pomáhá počítat výskyt slova nebo slov v konkrétním souboru. Například pokud chcete vědět o chybách vyskytujících se v systému. Podrobnosti se zaznamenají do souboru protokolů. Chcete-li tyto informace udržovat v konkrétní složce, napíšete cestu ke složkám. Tento příklad ukazuje, že v souborech protokolu došlo k 71 chybám.

Vyhledejte přesné shody v souboru

Chcete-li najít přesnou shodu v souborech vašeho systému, musíte jej pomocí příznaku „-w“ přesně seřadit. Uvedli jsme jednoduchý a komplexní příklad. V níže uvedeném příkladu zvažte hledání bez „-w“, tento příkaz přinese obě slova ve shodě s daným vstupem. Ale s použitím příznaku „-w“ bude hledání omezeno, protože vstupní slova odpovídají pouze prvnímu řetězci. Druhé slovo není zvýrazněno, protože „-w“ umožňuje přesné přizpůsobení vzoru.

$ -iw soubor 'hamna \ | house' 21.txt

Zde -I se také používá k odstranění citlivosti na velká a malá písmena při hledání textu.

Jak je vidět na fotografii, výsledky nejsou stejné. První příkaz přináší všechna související data s celými řetězci, zatímco druhý příkaz ukazuje, jak přesná data odpovídají přes grep při hledání více řetězců.

Grep pro více než jeden vzor v konkrétním typu přípony souboru

Hledání se provádí ve všech souborech. Je na vás, jestli budete hledat zadáním názvu souboru. Prohledávat bude pouze v konkrétních souborech. Ale poskytnutím přípony souboru budou data prohledána všemi soubory stejné přípony. Existují dva různé příklady k zobrazení souvisejícího výsledku. Vzhledem k prvnímu příkladu budou chybové soubory započítány do všech souborů .přípona protokolu. „-C“ se používá pro počítání.

$ grep -c 'varování \ | chyba' / var / log / *.log

Tento příkaz znamená, že soubory budou prohledány ve všech souborech souboru .přípona protokolu. Počet shod se zobrazí na výstupu, aby lépe demonstroval grep s konkrétní příponou souboru.

Ve druhém příkladu jsme v našich souborech v systému Linux s příponou textu použili dvě slova. Všechna data budou zobrazena ve formě čísel. 0 označuje žádná odpovídající data, zatímco jiná než 0 ukazuje, že shoda existuje.

$ grep -c 'aqsa \ | my' / home / aqsayasin / *.txt

Hledání rekurzivně více vzorů v souboru

Ve výchozím nastavení se použije aktuální adresář, pokud v příkazu není uveden žádný adresář. Pokud chcete hledat v adresáři podle vlastního výběru, musíte to zmínit. Operátor „-r“ se používá pro grep rekurzivně./ home / aqsayasin / zobrazuje cestu k souborům, zatímco *.txt ukazuje příponu. Grep bude cílem rekurzivního vyhledávání v textových souborech.

$ grep -R 'technical \ | free' / home / aqsayasin / *.txt

Ve výsledku, který ukazuje existenci těchto slov, je zvýrazněn požadovaný výstup.

Závěr

Ve výše uvedeném článku jsme citovali různé příklady, abychom uživateli usnadnili pochopení fungování příkazů pro vyhledávání více vzorů v systému Linux. Tato příručka vám pomůže při zvyšování vašich stávajících znalostí.

Hry Top 10 her k hraní na Ubuntu
Top 10 her k hraní na Ubuntu
Platforma Windows byla jednou z dominujících platforem pro hraní her kvůli velkému procentu her, které se dnes vyvíjejí, aby nativně podporovaly Windo...
Hry 5 nejlepších arkádových her pro Linux
5 nejlepších arkádových her pro Linux
V dnešní době jsou počítače vážné stroje používané k hraní her. Pokud nemůžete získat nové vysoké skóre, budete vědět, co tím myslím. V tomto příspěvk...
Hry Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 Vývoj uvolněn
Battle For Wesnoth 1.13.6 vydané minulý měsíc, je šestým vývojovým vydáním v 1.13.série x a přináší řadu vylepšení, zejména do uživatelského rozhraní,...