Jak mohu rekurzivně grepovat
všechny adresáře a podadresáře?
find . | xargs grep "texthere" *
grep -r "texthere" .
První parametr představuje regulární výraz, který se má hledat, zatímco druhý představuje adresář, který se má prohledat. V tomto případě .
znamená aktuální adresář.
Poznámka: Tento postup funguje pro GNU grep a na některých platformách, jako je Solaris, je nutné použít speciálně GNU grep na rozdíl od starší implementace. Pro Solaris je to příkaz ggrep
.
Pokud znáte příponu nebo vzor požadovaného souboru, můžete použít jinou metodu, a to volbu --include
:
grep -r --include "*.txt" texthere .
Soubory, které chcete vyloučit, můžete také uvést pomocí příkazu --exclude
.
Pokud často prohledáváte kód, je Ag (The Silver Searcher) mnohem rychlejší alternativou ke grepu, který je přizpůsoben pro prohledávání kódu. Například je ve výchozím nastavení rekurzivní a automaticky ignoruje soubory a adresáře uvedené v souboru .gitignore
, takže nemusíte grepu nebo find stále předávat stejně těžkopádné možnosti vyloučení.