grep

Linux grep příkaz

Linux grep příkaz
Grep je jedním z nejlepších nástrojů, které můžete mít k dispozici. Tento obslužný program příkazového řádku provádí vyhledávání v sadách dat ve formátu prostého textu. Grep je ve skutečnosti zkratka pro „Globálně hledat a regulární Expression a print “. Grep zahájil svoji cestu jako součást rodiny UNIX. Postupem času je nyní k dispozici na všech populárních platformách, jako je Linux, Mac, BSD a dokonce i Windows!

Už jste použili grep? Většinu času zvládne většinu triku základní grep. Grep však nabízí spoustu způsobů, jak provést vyhledávání a doladit výstup na použitelnější verzi. V tomto článku se podívejme na použití příkazu grep.

Použití Grep

Ověření existence

Pokud používáte jakýkoli distribuční systém Linux, máte již nainstalován grep. Spusťte následující příkaz v terminálu.

grep - verze

Tento příkaz se používá k zobrazení verze aktuálně nainstalovaného grep. Nyní potřebujeme demo soubor. V mém případě vygeneruji textový soubor, který obsahuje všechny nainstalované balíčky v mém systému.

Základy

Základní použití grepu se řídí následující strukturou.

grep

Nebo pro snazší pochopení použijte tento.

grep -E -F

V tomto případě grep provede vyhledávání v souboru a vytiskne všechny řádky, které obsahují vzor (hledaný výraz).

grep python ~ / Desktop / PackageList.txt

Grep prohledal soubor „PackageList.txt “Generoval jsem dříve a vytiskl všechny řádky, které obsahují„ python “.

Stejnou operaci lze provést jiným způsobem. Podívejte se na následující příklad.

cat ~ / Desktop / PackageList.txt | grep python

Tady jsem pomocí příkazu „cat“ odeslal obsah souboru „PackageList.txt ”na grep. Pomocí výstupu cat provedl grep vyhledávání a vytiskl řádky, které obsahují hledaný výraz.

Nyní přichází zábavná věc. Můžete doslova skládat více příkazů grep právě takhle.

cat ~ / Desktop / PackageList.txt | grep - | grep p | grep python

První grep filtruje dolů na řádky s pomlčkou, druhý filtr dolů na řádky s p a poslední grep filtruje dolů na řádky s pythonem. Dává smysl?

Citlivost písmen

Při vyhledávání je hlavní otázkou citlivost na velká a malá písmena. Ve výchozím nastavení grep rozlišuje velká a malá písmena.

Například vyhledávání výrazu „Python“ nezobrazí žádný výsledek.

cat ~ / Desktop / PackageList.txt | grep Python

Chcete-li, aby velká a malá písmena v grepu nebyla citlivá, přidejte následující možnost.

cat ~ / Desktop / PackageList.txt | grep -i Python

Hledání souborů

Řekněme, že máte adresář s mnoha textovými soubory. Vaším cílem je identifikovat soubory, které obsahují nebo neobsahují vzor (hledaný výraz).

Tuto metodu považuji za velmi užitečnou při hledání v hromadě souborů protokolu. Jelikož nemám čas otevírat a ručně kontrolovat každý jednotlivý soubor, musím udělat grep, aby to udělal za mě.

Pro výpis souborů obsahujících shodu použijte příznak „-l“.

grep -l / hledat / adresář / *

Jak naznačuje výsledek, výraz „python“ je přítomen ve všech 3 souborech v adresáři „Desktop“.

Pro výpis souborů bez jakékoli shody použijte příznak „-L“.

grep -L / hledat / adresář / *

"Žádná shoda.txt “je jediný soubor, který neobsahuje výraz„ python “.

Obrácené vyhledávání

Výchozí chování grepu je tisknout pouze řádky se shodným vzorem vpravo? Je čas tento proces zvrátit. Tentokrát budeme tisknout pouze řádky BEZ odpovídajícího vzoru.

Stačí předat možnost „-v“ na grep.

cat ~ / Desktop / PackageList.txt | grep -i -v Python

Tisk řádků před / po zápase

Ve výchozím nastavení grep vytiskne pouze řádek, který odpovídá vzoru hledání. Pomocí této techniky můžete říct, že grep má tisknout řádky také před / po zápase.

Pro tisk řádků před zápasem použijte následující strukturu.

grep -B

Zde je 5 řádek čísla, který grep vytiskne PŘED odpovídajícím řádkem.

Pro tisk řádků po shodě použijte následující.

grep -A

Co takhle tisknout před a po shodném řádku? V takovém případě použijte příznak „-C“.

grep -C

Číslo řádku

Když grep zobrazuje výstup, nezmiňuje číslo řádku. Pro přidružená čísla řádků použijte příznak „-n“.

grep -n

Jediné slovo

Pokud je použit příznak „-w“, bude grep považovat vzor za celé slovo.

grep -w

Omezení vyhledávání grep

Grep umožňuje určit počet řádků, které se mají v souboru prohledat. Tato metoda je užitečná, pokud pracujete s velkým souborem (jako je systémový protokol). Použijte příznak „-m“.

grep -m

Rekurzivní vyhledávání

Je to jedna z nejužitečnějších funkcí, které grep nabízí pro těžké používání. Grep může rekurzivně prohledávat adresář a najít všechny shody ze všech souborů, kterým čelí.

grep -R

Nebo,

grep -r

Často používám tuto rekurzivní funkci spolu s příznakem „-l“.

Tichý režim

Grep lze spustit v „tichém“ režimu. Když běží v „tichém“ režimu, grep nevytiskne do terminálu žádný výstup. Místo toho vrátí 0 (alespoň byla nalezena shoda) nebo 1 (nebyla nalezena žádná shoda).

grep -q
echo $?

Regulární výraz

Grep také umožňuje vyhledávání regulárních výrazů (regulárních výrazů). To přidává zcela novou úroveň složitosti a použitelnosti grepu jako vyhledávacího nástroje.

Například můžete použít závorky k vyhledání výrazů „příliš“ a „dva“ současně.

cat ~ / Desktop / gpl-3.0.txt | grep t [wo] o

Tento další příklad vytiskne řádek, pouze pokud dojde ke shodě na samém začátku řádku.

grep ^ GNU ~ / Desktop / gpl-3.0.txt

Pokud jde o shodu s koncem, použijte tento.

pozdravit vás $ ~ / Desktop / gpl-3.0.txt

Pokud chcete použít Perl regex, použijte příznak „-P“. Bude to považovat za vzor jako Perl regex.

grep -P

Závěrečné myšlenky

Grep nabízí spoustu způsobů, jak přizpůsobit funkci vyhledávání. Dostupnost regexu otevírá zcela nový horizont pro potenciální využití grepu. Skvělá věc je, že můžete použít obecný i Perl regex; podle toho, s čím se budete cítit pohodlně.

Nejpodrobnější vysvětlení najdete vždy na manuálové stránce.

muž grep

Na zdraví!

Hry Porty komerčních her s otevřeným zdrojovým kódem
Porty komerčních her s otevřeným zdrojovým kódem
Zdarma, s otevřeným zdrojovým kódem a multiplatformní herní enginy lze hrát staré i některé z poměrně nedávných herních titulů. Tento článek uvede sez...
Hry Nejlepší hry z příkazového řádku pro Linux
Nejlepší hry z příkazového řádku pro Linux
Příkazový řádek není při používání Linuxu jen vaším největším spojencem - může být také zdrojem zábavy, protože jej můžete použít k hraní mnoha zábavn...
Hry Nejlepší aplikace pro mapování gamepadu pro Linux
Nejlepší aplikace pro mapování gamepadu pro Linux
Pokud rádi hrajete hry na Linuxu s gamepadem místo typického vstupního systému pro klávesnici a myš, máte k dispozici několik užitečných aplikací. Mno...