GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Grep v Linuxu/UNIXu

V systémech Linux a Unix je Grep, zkratka pro „global regular expression print“, příkaz používaný při vyhledávání a porovnávání textových souborů obsažených v regulárních výrazech. Kromě toho je příkaz předinstalován v každé distribuci Linuxu. V této příručce se na několika příkladech podíváme na běžné použití příkazu grep.

Příkaz Grep v Linuxu

Příkaz Grep lze použít k nalezení nebo prohledání regulárního výrazu nebo řetězce v textovém souboru. Abychom to demonstrovali, vytvořte textový soubor welcome.txt a přidejte nějaký obsah podle obrázku.


Welcome to Linux !
Linux is a free and opensource Operating system that is mostly used by
developers and in production servers for hosting crucial components such as web
and database servers. Linux has also made a name for itself in PCs.
Beginners looking to experiment with Linux can get started with friendlier linux
distributions such as Ubuntu, Mint, Fedora and Elementary OS.

Skvělý! Nyní jsme připraveni provést několik příkazů grep a manipulovat s výstupem, abychom získali požadované výsledky.

Chcete-li vyhledat řetězec v souboru, spusťte níže uvedený příkaz

Syntaxe

$ grep "string" file name

NEBO

$ filename grep "string"

Příklad :

$ grep "Linux" welcome.txt

Výstup

Jak můžete vidět, grep nejen vyhledal a porovnal řetězec „Linux“, ale také vytiskl řádky, ve kterých se řetězec vyskytuje.

Pokud je soubor umístěn v jiné cestě k souboru, nezapomeňte zadat cestu k souboru, jak je uvedeno níže

$ grep "string" /path/to/file

Kolorování výsledků Grep pomocí volby –color

Pokud pracujete na systému, který nezobrazuje hledaný řetězec nebo vzor v jiné barvě než zbytek textu, použijte --color aby vaše výsledky vynikly.

Příklad

$ grep --color "free and opensource" welcome.txt 

Výstup

Rekurzivní vyhledávání řetězce ve všech adresářích

Pokud chcete hledat řetězec ve vašem aktuálním adresáři a všech ostatních podadresářích, hledejte pomocí - r příznak, jak je znázorněno

$ grep -r "string-name" *

Například

$ grep -r "linux" *

Výstup

Ignorování rozlišování malých a velkých písmen

Ve výše uvedeném příkladu nám naše výsledky hledání poskytly to, co jsme chtěli, protože řetězec „Linux“ byl zadán velkými písmeny a v souboru také existuje. Nyní zkusme hledat řetězec malými písmeny.

$ grep "linux" file name

Z výstupu nic, že? Je to proto, že grepping nemohl najít a najít a porovnat řetězec „linux“, protože první písmeno je malé. Chcete-li ignorovat rozlišování malých a velkých písmen, použijte -i flag a spusťte níže uvedený příkaz

$ grep -i "linux" welcome.txt

Výstup

Úžasné, že? The - i se běžně používá k zobrazení řetězců bez ohledu na jejich rozlišení.

Spočítejte řádky, kde se řetězce shodují, pomocí volby -c

Chcete-li spočítat celkový počet řádků, kde se vyskytuje nebo nachází vzor řetězce, proveďte níže uvedený příkaz

$ grep -c "Linux" welcome.txt

Výstup

Použití Grep k invertování výstupu

Chcete-li invertovat výstup Grep, použijte -v vlajka. -v volba dává pokyn grep, aby vytiskl všechny řádky, které neobsahují nebo neodpovídají výrazu.

Volba –v říká grepu, aby invertoval svůj výstup, což znamená, že místo tisku odpovídajících řádků udělejte opak a vytiskněte všechny řádky, které neodpovídají výrazu. Vraťme se k našemu souboru a zobrazme čísla řádků, jak je uvedeno.

Stiskněte ESC v editoru Vim, zadejte plnou dvojtečku následovanou

 set nu

Dále stiskněte Enter

Výstup

Nyní pro zobrazení řádků, které neobsahují řetězec „Linux“, spusťte

$ grep -v "Linux" welcome.txt

Výstup

Jak můžete vidět, grep zobrazil řádky, které neobsahují vyhledávací vzor.

Řádky, které obsahují vyhledávací vzor, ​​očíslujte volbou -n

Chcete-li očíslovat řádky se vzorem řetězce, použijte -n možnost, jak je znázorněno

$ grep -n "Linux" welcome.txt

Výstup

Vyhledejte přesně odpovídající slovo pomocí volby -w

Předání pak -w flag vyhledá řádek obsahující přesně odpovídající slovo, jak je uvedeno

$ grep -w "opensource" welcome.txt

Výstup

Pokud se však pokusíte

$ grep -w "open" welcome.txt

ŽÁDNÉ výsledky nebudou vráceny, protože nehledáme vzor, ​​ale přesné slovo!

Použití potrubí s grep

Příkaz grep lze použít společně s rourami pro získání odlišného výstupu.

Pokud například chcete vědět, zda je určitý balíček nainstalován v systému Ubuntu, spusťte

$ dpkg -L | grep "package-name"

Chcete-li například zjistit, zda byl ve vašem systémovém kanálu nainstalován OpenSSH, zadejte dpkg -l příkaz grep, jak je znázorněno

$ dpkg -L | grep -i "openssh"

Výstup

Zobrazení počtu řádků před nebo za vyhledávacím vzorem pomocí potrubí

Můžete použít -A nebo -B k zobrazení počtu řádků, které předcházejí nebo následují za hledaným řetězcem. -A příznak označuje řádky, které následují za vyhledávacím řetězcem a -B vytiskne výstup, který se objeví před hledaným řetězcem.

Například

$ ifconfig | grep -A 4 ens3

Tento příkaz zobrazí řádek obsahující řetězec plus 4 řádky textu za ens řetězec v ifconfig příkaz.

Výstup

Naopak v níže uvedeném příkladu použití parametru -B zobrazí řádek obsahující hledaný řetězec plus 3 řádky textu před ether řetězec v ifconfig příkaz.

Výstup

$ ifconfig | grep -B 4 ether

Použití grep s regulárními výrazy (REGEX)

Výraz REGEX je zkratka pro REG ulární EX tlak. REGEX je posloupnost znaků, která se používá ke shodě se vzorem. Níže je několik příkladů:


^      Matches characters at the beginning of a line
$      Matches characters at the end of a line
"."    Matches any character
[a-z]  Matches any characters between A and Z
[^ ..] Matches anything apart from what is contained in the brackets

Příklad
Pro tisk řádků začínajících určitým znakem je syntaxe;

grep ^character file_name

Chcete-li například zobrazit řádky začínající písmenem „d“ v našem souboru welcome.txt, spustili bychom

$ grep ^d welcome.txt 

Výstup

Chcete-li zobrazit řádky končící písmenem „x“, spusťte

$ grep x$ welcome.txt

Výstup

Získání nápovědy s dalšími možnostmi Grep

Pokud se potřebujete dozvědět více o použití příkazu Grep, spusťte příkaz níže, abyste získali náhled dalších příznaků nebo možností, které můžete použít společně s příkazem.

$ grep --help

Ukázkový výstup

Vážíme si vašeho času, který jste věnovali tomuto výukovému programu. Neváhejte a vyzkoušejte příkazy a dejte nám vědět, jak to dopadlo.


Linux
  1. Linuxový příkaz grep

  2. Linuxový příkaz mv

  3. Linux du command

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

  2. Linuxový ip příkaz

  3. Linux cd příkaz

  1. 14 Příklady příkazů Grep v Linuxu

  2. W Command v Linuxu

  3. At Command v Linuxu