Więcej
Jak mogę grepować rekursywnie?
Jak mogę rekurencyjnie grepować
wszystkie katalogi i podkatalogi?
find . | xargs grep "texthere" *
1613
3
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
:Możesz również wymienić pliki do wykluczenia za pomocą opcji
--exclude
.Ag
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.Również:
ale
grep -r
jest lepszą odpowiedzią.