GNU/Linux >> Znalost Linux >  >> Linux

Jak používat příkaz grep v Linuxu/UNIXu

Úvod

Tato příručka podrobně popisuje nejužitečnější příkazy grep pro systémy Linux / Unix.

Poté, co si projdete všechny příkazy a příklady, se naučíte, jak používat grep k hledání textu v souborech z terminálu.

Předpoklady

  • Linux nebo systém podobný UNIXu
  • Přístup k terminálu/příkazovému řádku
  • Uživatel s oprávněním pro přístup k požadovaným souborům a adresářům

Co je to příkaz grep?

Grep je zkratka, která znamená G lobální R pravidelné E výraz P otisknout.

Grep je nástroj příkazového řádku Linux / Unix, který se používá k hledání řetězce znaků v určeném souboru. Vzor vyhledávání textu se nazývá regulární výraz. Když najde shodu, vytiskne řádek s výsledkem. Příkaz grep je užitečný při prohledávání velkých souborů protokolu.

Použití příkazu grep

Příkaz grep se ve své nejzákladnější podobě skládá ze tří částí. První část začíná grep , následovaný vzorem, který hledáte. Za řetězcem následuje název souboru, který grep prohledává.

Nejjednodušší syntaxe příkazu grep vypadá takto:

Příkaz může obsahovat mnoho voleb, variací vzorů a názvů souborů. Zkombinujte tolik možností, kolik potřebujete, abyste dosáhli požadovaných výsledků. Níže jsou uvedeny nejběžnější příkazy grep s příklady .

Prohledání souboru

Chcete-li vytisknout libovolný řádek ze souboru, který obsahuje konkrétní vzor znaků, v našem případě phoenix v souboru sample2 , spusťte příkaz:

grep phoenix sample2

Grep zobrazí každý řádek, kde je shoda se slovem phoenix . Při provádění tohoto příkazu nezískáte přesné shody. Místo toho terminál vytiskne řádky se slovy obsahujícími řetězec znaků, který jste zadali. Zde je příklad:

Prohledání více souborů

Chcete-li prohledávat více souborů pomocí příkazu grep, vložte názvy souborů, které chcete prohledávat, oddělené mezerou.

V našem případě příkaz grep, který odpovídá slovu phoenix ve třech souborech sample , sample2 a sample3 vypadá takto:

grep phoenix sample sample2 sample3

Terminál vytiskne název každého souboru, který obsahuje odpovídající řádky, a skutečné řádky, které obsahují požadovaný řetězec znaků.

Můžete připojit libovolný počet názvů souborů. Terminál vytiskne nový řádek s názvem souboru pro každou shodu, kterou najde v uvedených souborech.

Prohledat všechny soubory v adresáři

Chcete-li prohledat všechny soubory v aktuálním adresáři, použijte na konci příkazu grep místo názvu souboru hvězdičku.

V tomto příkladu používáme nix jako vyhledávací kritérium:

grep nix *

Výstup zobrazuje název souboru s nix a vrátí celý řádek.

Chcete-li najít pouze celá slova

Grep vám umožňuje najít a vytisknout výsledky pouze pro celá slova. Chcete-li vyhledat slovo fénix ve všech souborech v aktuálním adresáři připojte -w na příkaz grep.

grep -w phoenix *

Tato možnost vytiskne pouze řádky se shodami celých slov a názvy souborů, ve kterých je nalezla:

Když -w je vynechán, grep zobrazí vyhledávací vzor, ​​i když se jedná o podřetězec jiného slova.

Pokud byste chtěli hledat více řetězců a slovních vzorů, podívejte se na náš článek o tom, jak hledat více řetězců, vzorů nebo slov.

Ignorování případu ve vyhledávání Grep

Protože příkazy grep rozlišují velká a malá písmena, jedním z nejužitečnějších operátorů pro vyhledávání grep je -i. Namísto tisku výsledků pouze malými písmeny terminál zobrazuje výsledky jak velkými, tak malými písmeny. Výstup obsahuje řádky se smíšenými zápisy velkých a malých písmen.

Příklad tohoto příkazu:

grep -i phoenix *

Pokud použijeme -i operator k vyhledání souborů v aktuálním adresáři phoenix , výstup vypadá takto:

Prohledání podadresářů

Chcete-li do vyhledávání zahrnout všechny podadresáře, přidejte -r operátora na příkaz grep.

grep -r phoenix *

Tento příkaz vytiskne shody pro všechny soubory v aktuálním adresáři, podadresářích a přesnou cestu s názvem souboru. V níže uvedeném příkladu jsme také přidali -w operátor zobrazí celá slova, ale výstupní forma je stejná.

Inverzní vyhledávání grep

Pomocí grep můžete vytisknout všechny řádky, které ne odpovídat konkrétnímu vzoru znaků. Chcete-li invertovat vyhledávání, přidejte -v na příkaz grep.

Chcete-li vyloučit všechny řádky, které obsahují phoenix , zadejte:

grep -v phoenix sample

Terminál vytiskne všechny řádky, které neobsahují slovo použité jako vyhledávací kritérium. Použijte -i ignorovat velká a malá písmena pro úplné vyloučení slova použitého pro toto vyhledávání:

Zobrazení řádků, které se přesně shodují s vyhledávacím řetězcem

Příkaz grep vytiskne celé řádky, když najde shodu v souboru. Chcete-li vytisknout pouze řádky, které zcela odpovídají hledanému řetězci, přidejte -x možnost.

grep -x “phoenix number3” *

Výstup zobrazuje pouze řádky s přesnou shodou. Pokud jsou na stejném řádku nějaká další slova nebo znaky, grep je nezahrne do výsledků vyhledávání. Nezapomeňte použít uvozovky, kdykoli je ve vyhledávacím vzoru mezera nebo symbol.

Zde je srovnání výsledků bez a s -x operátor v našem příkazu grep:

Vypsat seznam jmen odpovídajících souborů

Někdy stačí vidět názvy souborů, které obsahují slovo nebo řetězec znaků, a vyloučit skutečné řádky. Chcete-li vytisknout pouze názvy souborů, které odpovídají vašemu hledání, použijte -l operátor:

grep -l phoenix *

Výstup zobrazuje přesné názvy souborů, které obsahují phoenix v aktuálním adresáři, ale nevytiskne řádky s odpovídajícím slovem:

Pro připomenutí použijte rekurzivní vyhledávací operátor -r zahrnout do vyhledávání všechny podadresáře.

Počítání počtu shod

Grep může zobrazit názvy souborů a počet řádků, kde najde shodu s vaším slovem.

Použijte -c operátor pro počítání počtu shod:

grep -c phoenix *

Zobrazení počtu řádků před nebo za vyhledávacím řetězcem

Někdy potřebujete více obsahu ve výsledcích vyhledávání, abyste se rozhodli, co je nejrelevantnější.

Pomocí následujících operátorů přidejte požadované řádky před, po shodě nebo obojí:

  • Použijte -A a počet řádků k zobrazení po shodě:grep -A 3 phoenix sample - tento příkaz vytiskne tři řádky po shodě.
  • Použijte -B a počet řádků, které se mají zobrazit před zápasem:grep -B 2 phoenix sample - tento příkaz vytiskne dva řádky před shodou.
  • Použijte -C a několik řádků, které se mají zobrazit před a po zápase:grep -C 2 phoenix sample - tento příkaz vytiskne dva řádky před a po shodě.

Zobrazení čísel řádků se shodami grep

Když grep vytiskne výsledky s mnoha shodami, je užitečné vidět čísla řádků. Připojte -n operátor k libovolnému příkazu grep k zobrazení čísel řádků.

Budeme hledat Phoenix v aktuálním adresáři zobrazit dva řádky před a za shodami spolu s jejich čísly.

grep -n -C 2 Phoenix sample

Omezit výstup grep na pevný počet řádků

Jednotlivé soubory, jako jsou soubory protokolu, mohou obsahovat mnoho shod pro vyhledávací vzory grep. Omezte počet řádků ve výstupu grep přidáním -m možnost a číslo příkazu.

grep -m2 Phoenix sample

V tomto případě terminál vytiskne první dvě shody, které najde v sample soubor.

Pokud neurčíte soubor a prohledáte všechny soubory v adresáři, výstup vytiskne první dva výsledky z každého soubor spolu s názvem souboru, který obsahuje shody.


Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat Su Command v Linuxu

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz Disown v Linuxu

  3. Jak používat Linux Screen Command

  1. Jak používat příkaz xargs pro Linux

  2. Jak používat příkaz Linux SS

  3. Jak používat Linuxový příkaz tee