Jak mogę rekurencyjnie grepować
wszystkie katalogi i podkatalogi?
find . | xargs grep "texthere" *
grep -r "texthere" .
Pierwszy parametr reprezentuje szukane wyrażenie regularne, drugi zaś katalog, który powinien zostać przeszukany. W tym przypadku, .
oznacza bieżący katalog.
Uwaga: Działa to dla GNU grep, a na niektórych platformach, takich jak Solaris, musisz specjalnie użyć GNU grep, w przeciwieństwie do starszej implementacji. Dla Solarisa jest to polecenie ggrep
.
Jeśli znasz rozszerzenie lub wzór pliku, który chcesz, inną metodą jest użycie opcji --include
:
grep -r --include "*.txt" texthere .
Możesz również wymienić pliki do wykluczenia za pomocą opcji --exclude
.
Jeśli często przeszukujesz kod, Ag (The Silver Searcher) jest znacznie szybszą alternatywą dla grepa, która'jest dostosowana do przeszukiwania kodu. Na przykład, jest on domyślnie rekurencyjny i automatycznie ignoruje pliki i katalogi wymienione w .gitignore
, więc nie trzeba ciągle podawać tych samych kłopotliwych opcji wykluczania do grepa lub find.