Chcete najít všechny soubory, které obsahují určité slovo nebo řetězec textu v celém systému Linux nebo v daném adresáři? Tento článek vás provede, jak na to, dozvíte se, jak rekurzivně procházet adresáře, abyste našli a vypsali všechny soubory, které obsahují daný řetězec textu.
Jednoduchým způsobem, jak to vyřešit, je použití nástroje pro vyhledávání vzorů grep, což je výkonný, efektivní, spolehlivý a nejoblíbenější nástroj příkazového řádku pro vyhledávání vzorů a slov ze souborů nebo adresářů na systémech podobných Unixu.
Přečtěte si také :11 pokročilých linuxových příkazů „Grep“ pro třídy znaků a výrazy v závorkách
Níže uvedený příkaz zobrazí seznam všech souborů obsahujících řádek s textem „check_root ”, rekurzivním a agresivním prohledáváním ~/bin
adresář.
$ grep -Rw ~/bin/ -e 'check_root'
Kde -R
možnost říká grep číst všechny soubory v každém adresáři, rekurzivně, podle symbolických odkazů, pouze pokud jsou na příkazovém řádku a volbou -w přikazuje mu vybrat pouze ty řádky obsahující shody, které tvoří celá slova, a -e
se používá k určení řetězce (vzoru), který se má prohledávat.
Příkaz sudo byste měli používat při prohledávání určitých adresářů nebo souborů, které vyžadují oprávnění root (pokud nespravujete svůj systém pomocí účtu root).
$ sudo grep -Rw / -e 'check_root'
Chcete-li ignorovat rozlišení velkých a malých písmen, použijte -i
možnost podle obrázku:
$ grep -Riw ~/bin/ -e 'check_root'
Chcete-li znát přesný řádek, kde řetězec textu existuje, vložte -n
možnost.
$ grep -Rinw ~/bin/ -e 'check_root'
Za předpokladu, že v adresáři, ve kterém chcete hledat, je několik typů souborů, můžete také určit typ souborů, které se mají prohledávat, například podle jejich přípony pomocí --include
možnost.
Tento příklad dává pokyn grep, aby prohlížel pouze všechny .sh
soubory.
$ grep -Rnw --include=\*.sh ~/bin/ -e 'check_root'
Kromě toho je možné vyhledat více než jeden vzor pomocí následujícího příkazu.
$ grep -Rinw ~/bin/ -e 'check_root' -e 'netstat'
A je to! Pokud znáte nějaký další trik příkazového řádku k nalezení řetězce nebo slova v souborech, podělte se s námi nebo se zeptejte na jakékoli otázky týkající se tohoto tématu, použijte formulář pro komentáře níže.