grep

Příkaz Grep v Linuxu

Příkaz Grep v Linuxu
Příkaz Grep (tisk globálního regulárního výrazu) je nejvýkonnější a pravidelně používaný nástroj příkazového řádku Linux. Pomocí Grep můžete vyhledat užitečné informace zadáním vyhledávacích kritérií. Hledá určitý vzor výrazu v zadaném souboru. Když najde shodu, vytiskne všechny řádky souboru, který odpovídá zadanému vzoru. To přijde vhod, když budete muset filtrovat přes velké soubory protokolu.

V tomto článku vysvětlíme použití grep utility na různých příkladech. Debian 10 použijeme k vysvětlení příkazů a metod zmíněných v tomto článku.

Instalace Grep

Grep je nainstalován ve většině distribucí Linuxu. V případě, že ve vašem systému chybí, můžete jej nainstalovat pomocí následující metody v Terminálu:

$ sudo apt-get nainstalovat grep

Používání Grep

Zde je základní syntaxe příkazu grep. Začíná to grepem, následují některé možnosti a vyhledávací kritéria a poté končí názvem souboru.

$ grep [možnosti] VZOR [SOUBOR…]

Vyhledejte soubory

Chcete-li vyhledat název souboru v adresáři, který obsahuje konkrétní řetězec, můžete použít grep následujícím způsobem:

$ ls -l | grep -i “řetězec

Například hledat název souboru, který obsahuje řetězec „test„, Příkaz by byl:

$ ls -l | grep -i test

Tento příkaz vypíše všechny soubory, které obsahují řetězec „test“.

Vyhledejte řetězec v souboru

Chcete-li vyhledat řetězec v konkrétním souboru, můžete použít následující syntaxi příkazu:

$ grep „řetězec“ název souboru

Například hledat řetězec „test“V souboru s názvem testfile1, použili jsme následující příkaz:

$ grep „zaměstnanec“ testovací soubor1

Výše uvedený výstup vrátil větu z testfile1 který obsahuje řetězec „zaměstnanec“.

Vyhledejte řetězec ve více souborech

Chcete-li vyhledat řetězec ve více souborech, můžete použít následující syntaxi příkazu:

$ grep „řetězec“ název_souboru1 název_souboru2

Například k vyhledání řetězce „zaměstnanec“ v našich dvou souborech testfile1 a testfile2 jsme použili následující příkaz:

$ grep „zaměstnanec“ testfile1 testfile2

Výše uvedený příkaz zobrazí seznam všech řádků, které obsahují řetězec „zaměstnanec“ z obou souborů testfile1 a testfile2.

Můžete také použít zástupný znak, pokud všechny názvy souborů začínají stejným textem.

$ grep „řetězec“ název souboru *

Jako, vezmeme-li výše uvedený příklad, ve kterém byly naše názvy souborů testfile1 a testfile2 , příkaz by byl:

$ grep „zaměstnanec“ testovací soubor *

Vyhledejte řetězec v souboru ignorováním velkých a malých písmen řetězce

Nejčastěji jste se setkali s tím, že když něco hledáte pomocí grep, ale nedostanete výstup. K tomu dochází kvůli neshodě případů při hledání řetězce. Stejně jako v našem příkladu, pokud omylem použijeme „Zaměstnanec" namísto "zaměstnanec„, Vrátí se nula, protože náš soubor obsahuje řetězec„zaměstnanec”Malými písmeny.

Můžete říct grepu, aby ignoroval případ vyhledávacího řetězce pomocí -i vlajky za grepem takto:

$ grep -i „řetězec“ název souboru

Použitím parametru -i provede příkaz vyhledávání bez rozlišování velkých a malých písmen a vrátí všechny řádky obsahující řetězec „zaměstnanec„V něm jsou písmena psána velkými nebo malými písmeny.

Hledejte pomocí regulárního výrazu

Pokud je regulární výraz správně používán, je velmi efektivní funkcí v grepu. Pomocí příkazu Grep můžete definovat regulární výraz s počátečním a koncovým klíčovým slovem. Tímto způsobem nebudete muset psát celý řádek příkazem grep. K tomuto účelu lze použít následující syntaxi.

$ grep “počáteční klíčové slovo.* ukončení klíčového slova ”název souboru

Například k vyhledání řádku v souboru s názvem testfile1, který začíná řetězcem „this“ a končí řetězcem „data“, jsme použili následující příkaz:

$ grep „toto.* data “testfile1

Vytiskne celý řádek z testfile1 obsahující výraz (počáteční klíčové slovo „toto“ a koncové klíčové slovo „data“).

Tisk určitého počtu řádků za / před vyhledávacím řetězcem

Můžete také zobrazit konkrétní počet řádků v souboru před / po shodě řetězce spolu se samotným odpovídajícím řetězcem. Pro tento účel lze použít následující syntaxi:

$ grep -A „Řetězec“ název souboru

Zobrazí se počet N řádků po shodě řetězce v zadaném souboru včetně shodného řetězce.

Jedná se například o náš ukázkový soubor s názvem testfile2.

Následující příkaz vypíše odpovídající řádek obsahující řetězec „zaměstnanec”, Spolu se 2 řádky po něm.

$ grep -A 2 -i „zaměstnanec“ testovací soubor2

Podobně pro zobrazení N počtu řádků před odpovídajícím řetězcem v konkrétním souboru použijte následující syntaxi:

$ grep -B „Řetězec“ název souboru

Chcete-li zobrazit N počet řádků kolem řetězce v konkrétním souboru, použijte následující syntaxi:

$ grep -C „Řetězec“ název souboru

Zvýraznění hledání

Grep ve výchozím nastavení tiskne shodné řádky, ale neukazuje, která část řádku je shodná. Pokud použijete volbu -color s grep, zobrazí se, kde se ve vašem souboru objeví obráběcí řetězce. Grep ve výchozím nastavení používá pro zvýraznění červenou barvu.

Pro tento účel lze použít následující syntaxi:

$ grep „string“ název souboru --color

Počítání počtu zápasů

Pokud chcete spočítat, kolikrát se konkrétní slovo objeví v konkrétním souboru, můžete použít možnost grep s -c. Vrátí pouze počet shod, nikoli samotné shody. Pro tento účel lze použít následující syntaxi:

$ grep -c „řetězec“ název souboru

Toto je náš ukázkový soubor, který vypadá takto:

Následuje příklad příkazu, který vrátil počet opakování slova soubor se objevil v souboru s názvem testfile3.

Obrácené vyhledávání

Někdy chcete provést zpětné vyhledávání, které zobrazí všechny řádky kromě těch, které se shodují se vstupem. Chcete-li tak učinit, jednoduše použijte příznak -v následovaný grep:

$ grep -v „řetězec“ název souboru

Například pro zobrazení všech řádků v souboru testfile3 které v nich neobsahují slovo „účet“, použili jsme následující příkaz:

$ grep -v „účet“ testfile3

Používání Grepu s dalšími příkazy

Grep lze také použít k odfiltrování požadovaného výsledku z různých výstupů příkazů. Například z „seznam nainstalovaných apt ” výstup příkazu, chcete najít pouze balíčky, které byly nainstalovány automaticky, můžete výsledek odfiltrovat pomocí grep takto:

$ apt - nainstalovaný seznam | grep automatické

Podobně lscpu poskytuje podrobné informace o CPU. Pokud vás zajímají pouze informace týkající se architektury CPU, můžete je odfiltrovat pomocí následujícího příkazu:

$ lscpu | grep architektura

V tomto článku jsme popsali několik příkladů, které vám pomohou porozumět příkazům grep a jeho použití v různých podmínkách. Silné uchopení příkazu grep vám může ušetřit spoustu času, pokud se potřebujete podívat na velké konfigurační soubory nebo soubory protokolu a prohledávat skrz ně užitečné informace.

Top 5 ergonomických produktů pro počítačové myši pro Linux
Způsobuje dlouhodobé používání počítače bolest zápěstí nebo prstů? Trpíte ztuhlými klouby a neustále si musíte třást ruce? Cítíte pálivou bolest pokaž...
Jak změnit nastavení myši a touchpadu pomocí Xinput v Linuxu
Většina linuxových distribucí je ve výchozím nastavení dodávána s knihovnou „libinput“ pro zpracování vstupních událostí v systému. Může zpracovávat v...
Přemapujte tlačítka myši odlišně pro jiný software pomocí ovládání myší X-Mouse
Možná potřebujete nástroj, který by mohl změnit ovládání myši u každé aplikace, kterou používáte. V takovém případě můžete vyzkoušet aplikaci s názvem...