Ako môžem rekurzívne grepovať
všetky adresáre a podadresáre?
find . | xargs grep "texthere" *
grep -r "texthere" .
Prvý parameter predstavuje regulárny výraz, ktorý sa má vyhľadať, zatiaľ čo druhý predstavuje adresár, ktorý sa má vyhľadať. V tomto prípade .
znamená aktuálny adresár.
Poznámka: Toto funguje pre GNU grep a na niektorých platformách, ako je Solaris, musíte použiť špeciálne GNU grep na rozdiel od staršej implementácie. Pre Solaris je to príkaz ggrep
.
Ak poznáte príponu alebo vzor požadovaného súboru, ďalšou metódou je použitie možnosti --include
:
grep -r --include "*.txt" texthere .
Súbory, ktoré chcete vylúčiť, môžete uviesť aj pomocou príkazu --exclude
.
Ak často prehľadávate kód, Ag (The Silver Searcher) je oveľa rýchlejšia alternatíva k grepu, ktorá'je prispôsobená na prehľadávanie kódu. V predvolenom nastavení je napríklad rekurzívny a automaticky ignoruje súbory a adresáre uvedené v súbore .gitignore
, takže nemusíte grepu alebo find stále odovzdávať tie isté ťažkopádne možnosti vylúčenia.