Jak najít konkrétní text pomocí grep
na Linuxu. grep
je zkratka pro Global Regular Expression Print. Je to jeden z nejužitečnějších nástrojů v Linuxu pro rekurzivní vyhledávání konkrétního řetězce přes soubory nebo na jednom souboru.
V této příručce se naučíte, jak používat grep
příkaz pro různé případy použití na vašem počítači se systémem Linux.
Případy použití
- Normální vyhledávání v souboru.
- Rekurzivní vyhledávání v adresářích.
- Vyjma souborů.
- Včetně souborů.
- Vyhledávání regulárních výrazů.
- Použití grep s dalšími příkazy k filtrování výstupu.
Syntaxe příkazu grep
grep [OPTIONS] STRING [FILE(S)]
MOŽNOSTI jsou volitelné a zahrnují různé metody provádění vyhledávání.
STRING je vyžadováno, které používá konkrétní řetězec k vyhledávání.
SOUBOR(Y) Můžete přidat soubory nebo adresář k provedení vyhledávání nebo jen .
pro vyhledávání v aktuálním adresáři.
Ve výchozím nastavení grep rozlišuje malá a velká písmena. Pokud chcete ignorovat malá a velká písmena, můžete použít -i
volba, která ignoruje velká a malá písmena a zobrazuje obsah s malými a velkými písmeny.
Normální hledání v souboru
Toto je nejzákladnější použití příkazu grep. Stačí použít příkaz s řetězcem, který potřebujete vyhledat, a názvem souboru.
grep string filename
Tento příkaz vyhledá daný text v poskytnutém souboru a zobrazí výsledky.
Rekurzivní vyhledávání včetně adresářů
Chcete-li prohledat všechny soubory, které jsou v adresáři, musíte použít -r
možnost provést rekurzivní vyhledávání v dané složce.
-r
možnost nesledujte symbolické odkazy. Pokud chcete vyhledávat přes symbolické odkazy, musíte použít velké -R
možnost namísto malého -r
možnost.
grep -r string folder-name #Include Symbolic link files grep -R string folder-name
Vyloučit soubory při použití grep
Můžete použít --exclude
možnost vyloučit adresáře, konkrétní soubory nebo soubory se specifickými příponami.
grep -r string --exclude=filename --exclude=*.png --exclude=folder/* folder-name
Zahrnout soubory při používání grep
Můžete použít --include
možnost zahrnout pouze konkrétní adresáře, konkrétní soubory nebo soubory s konkrétními příponami.
grep -r string --include=filename --include=*.php --include=folder/* folder-name
Vyhledávání regulárních výrazů
Použijte ^
(stříška), aby odpovídal výrazu na začátku řádku. V následujícím příkladu text string
se bude shodovat, pouze pokud se vyskytuje na samém začátku řádku.
grep "^string" filename
Použijte $
(dolar), aby odpovídal výrazu na konci řádku. V následujícím příkladu text string
se bude shodovat pouze v případě, že se objeví na samém konci řádku.
grep "string$" filename
Použijte .
(tečka), aby odpovídal libovolnému jednotlivému znaku. Chcete-li například odpovídat všemu, co začíná string1
pak má dva znaky a končí textem string2
, můžete použít následující vzor.
grep "string1..string2" filename
Použijte [ ]
(závorky), aby odpovídaly libovolnému jednotlivému znaku uzavřenému v závorkách. Najděte například řádky, které obsahují boat
nebo „coat
, můžete použít následující vzor.
grep "[bc]oat" filename
Chcete-li uniknout speciálnímu významu dalšího znaku, použijte \
(obrácené lomítko).
Použití grep s dalšími příkazy
Můžete také použít grep k filtrování výstupu, který je poskytován pomocí jiného příkazu.
ps -ef | grep mysql | grep -v grep
Tím se odfiltruje výstup a zobrazí se pouze ty, které mají mysql
.
Závěr
Nyní jste se naučili, jak provádět vyhledávání pomocí příkazu grep různými metodami na vašem počítači se systémem Linux.
Díky za váš čas. Pokud narazíte na jakýkoli problém nebo zpětnou vazbu, zanechte prosím komentář níže.