GNU/Linux >> Znalost Linux >  >> Debian

Jak používat příkaz grep na Debianu 10

Grep je zkratka pro globální tisk regulárních výrazů. Je to užitečný příkaz a široce používaný systémovými inženýry Linuxu při hledání řetězce nebo vzorů proti běžným souborům a v systému.

V tomto článku se chystám demonstrovat použití příkazu grep na velkém počtu příkladů. Všechny příkazy a příklady jsem testoval na počítači Debian 10.

Předpoklad

Musíte mít jeden počítač Debian 10 s právy root.

Instalace příkazu grep na Debian 10

Ve výchozím nastavení je grep nainstalován na většině systému včetně Debianu 10. Pokud není nainstalován, otevřete terminál a zadejte následující příkaz s právy root.

apt-get install grep

Až budete požádáni o potvrzení, stiskněte ya poté zadejte z klávesnice. Počkejte na dokončení instalace.

Protože grep byl na mém počítači již nainstalován, zkontrolujte výše uvedený snímek obrazovky. Zkontrolujeme jeho verzi spuštěním následujícího příkazu na terminálu.

grep --version

Měl by také vrátit verzi spolu s dalšími podrobnostmi, jak je uvedeno níže.

Použití příkazu grep

Jakmile budeme mít na našem počítači k dispozici příkaz grep, můžeme si s ním hrát.

Vyhledávání konkrétního souboru nebo adresáře ve vašem systému

Když chcete vyhledat nebo najít konkrétní soubor ve vašem systému, syntaxe příkazu by měla být následující.

ls -l | grep -i „název souboru nebo adresáře“

Chci vyhledat síťový adresář v /etc/. Úplný příkaz by měl vypadat následovně.

ls -l /etc/ | grep -i "network"

Možnost „i“ ignoruje rozlišování velkých a malých písmen. Proto by měl síť, síť nebo SÍŤ považovat za podobné.

Níže je ukázkový výstup.

Předpokládejme, že chci prohledat soubor „interfaces.d“ umístěný v /etc/network/, musíte spustit následující příkaz.

ls -l /etc/network/ | grep -i "interfaces.d"

Pokud slovo obsahuje mezery, je nutné uvést slovo, které chcete najít, do dvojitých uvozovek. Předpokládejme, že hledáme „network daemon“, výše uvedený příkaz by měl vypadat následovně.

ls -l /etc/network/ | grep -i „démon rozhraní“

Vyhledávání celého slova pomocí grep

Možná jste si všimli, že grep vrátil všechny druhy výsledků, které zahrnují „síť“, např. sítí, sítí, sítí nebo abcnetworking atd. Chcete-li omezit vyhledávání na konkrétní slovo, musíte použít volbu -w následovně.

ls -l /etc/ | grep -i -w network

Níže je ukázkový výstup.

Vyhledávání konkrétního textu v souboru

Máme případ, kdy máte velký soubor a chcete vyhledat konkrétní text. Syntaxe příkazu by měla být následující.

grep – i „text, který chcete vyhledat“ „název souboru a cesta“

Předpokládejme, že chci vyhledat slovo „liška“ v souboru test.txt, který se nachází v mém aktuálním adresáři. Spusťte následující příkaz na terminálu.

grep -i "fox" test.txt

Níže je ukázkový výstup, který vrací pouze ty řádky souboru obsahující slovo „liška“.

Provádění rekurzivního vyhledávání (vyhledávání ve více souborech)

Pokud chcete prohledávat text z velkého počtu souborů a podadresářů v adresáři, můžete provést rekurzivní průzkum pomocí volby -r.

grep -i -r "fox"

Níže je ukázkový výstup, který ukazuje, že slovo liška je přítomno v souborech test.txt i tree.txt v zobrazeném řádku.

Můžete také zadat cestu k adresáři a prohledá všechny soubory v tomto adresáři a jeho podadresářích.

Předpokládejme, že chci provést rekurzivní průzkum textu „rozhraní“ v /etc/ a jeho podadresářích. Příkaz by měl být proveden následovně.

grep -i -r interfaces /etc/

Níže je ukázkový výstup.

Hledání dvou různých slov pomocí jediného příkazu grep

Můžete vyhledávat dvě různá slova jedním příkazem egrep (což je varianta grep) následovně. Předpokládejme, že chci hledat kompletní slova liška a líný ve více souborech pomocí volby -r. Na terminálu musíte spustit následující příkaz.

egrep -w -r "fox|lazy"

Níže je ukázkový výstup.

Očíslování řádku, který odpovídá textu

Další užitečnou možností je -n, které očísluje řádky odpovídající textu. Následuje příklad ilustrující, jak použít volbu -n.

grep -i -n "fox" test.txt

Níže je ukázkový výstup, jehož čísla řádků odpovídají slovu „liška“.

Invertování vyhledávání

To je opak toho, co jsme udělali výše. Pokud chcete vrátit text, který neobsahuje vámi zadané slovo, můžete použít volbu -v.

Níže je uveden příklad demonstrující použití volby -v.

grep -v -i "fox" test.txt

Níže je ukázkový výstup.

Všechny výše uvedené volby (-n atd.) lze také použít s volbou -v.

Počítání zápasů

Pokud chcete pouze spočítat počet shod proti určitému textu, můžete použít volbu -c.

Počítejme slovo „liška“ v souboru test.txt umístěném v aktuálním adresáři. Spusťte na terminálu následující příkaz.

grep -i -c fox test.txt

Níže je ukázkový výstup po provedení výše uvedeného příkazu, který ukazuje, že slovo liška se v souboru test.txt třikrát shodovalo.

Zobrazení názvů souborů, které odpovídají konkrétnímu textu

Pokud chcete zjistit soubory, které obsahují vaše konkrétní slovo, můžete použít volbu -l spolu s -r  následovně. Za předpokladu, že všechny soubory jsou umístěny ve vašem aktuálním adresáři a konkrétní slovo, které hledáte nebo odpovídáte, je „liška“.

grep -i -r -l fox

Níže je ukázkový výstup, který ukazuje, že slovo liška je přítomno uvnitř test.txt a v podadresáři a souboru asif.txt

Zobrazení pouze shodného textu

Ve výchozím nastavení grep zobrazuje celý řádek, který odpovídá požadovanému textu nebo slovu. Pokud chcete, aby vám grep zobrazil odpovídající slova, můžete použít volbu -o následovně.

grep -i -o fox test.txt

Níže je ukázkový výstup.

Zobrazení řádků, které začínají konkrétním slovem (slovy)

Pokud chcete načíst všechny řádky, které začínají konkrétním slovem (slovy), můžete použít operátor ^ následovně.

Za předpokladu, že chcete vrátit všechny řádky, které začínají „unix“ a soubor je log.txt umístěný ve vašem aktuálním adresáři.

Spusťte na terminálu následující příkaz.

grep -i "^unix" log.txt

Níže je ukázkový výstup.

Zobrazení řádků, které končí konkrétním slovem (slovy)

Pokud chcete vrátit všechny tyto řádky ze souboru, který končí konkrétním slovem (slovy), můžete použít operátor $ následovně. Za předpokladu, že slovo je „linux“ a soubor, který chcete prohledat, je rev.txt umístěný ve vašem aktuálním adresáři.

Spusťte na terminálu následující příkaz.

grep -i "linux$" rev.txt

Níže je ukázkový výstup.

Závěr

Takže toto byl můj návod o použití příkazu grep. Ukázal jsem většinu možností grep, které se většinou používají a které můžete potřebovat ve své každodenní práci. Existuje několik variant příkazu grep včetně zgrep atd. Můžete je prozkoumat sami.


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

  2. Jak používat příkaz Grep k vyhledání textu v souborech

  3. Jak používat Su Command v Linuxu

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

  2. Jak používat příkaz Grep v Linuxu + užitečné příklady Grep

  3. Jak nainstalovat Java 17 v Debianu 11

  1. Jak nainstalovat Nextcloud na Debian 11

  2. Jak nainstalovat Gradle na Debian 11

  3. Jak nainstalovat Webmin na Debian 11