Możesz użyć grepnarzędzia do rekurencyjnego przeszukiwania bieżącego folderu za pomocą -rparametru, takiego jak:
grep -r "pattern" .
Uwaga: -r- Rekurencyjnie przeszukuj podkatalogi.
Aby wyszukiwać w określonych plikach, możesz użyć składni globowania, takiej jak:
grep "class foo" **/*.c
Uwaga: Korzystając z opcji globbing ( **), skanuje rekursywnie wszystkie pliki z określonym rozszerzeniem lub wzorem. Aby włączyć tę składnię, uruchom: shopt -s globstar. Możesz również użyć **/*.*do wszystkich plików (z wyjątkiem ukrytych i bez rozszerzenia) lub dowolnego innego wzoru.
Jeśli masz błąd, że Twój argument jest za długi, rozważ zawężenie wyszukiwania lub użyj findskładni, na przykład:
find . -name "*.php" -execdir grep -nH --color=auto foo {} ';'
Alternatywnie użyj ripgrep.
Jeśli pracujesz nad większymi projektami lub dużymi plikami, powinieneś użyć ripgrep, takich jak:
rg "pattern" .
Zapoznaj się z dokumentacją, krokami instalacji lub kodem źródłowym na stronie projektu GitHub .
To znacznie szybciej niż jakiekolwiek inne narzędzia jak GNU / BSD grep , ucg, ag, sift, ack, ptlub podobny, ponieważ jest zbudowany na silniku regex Rust , który używa automatów skończonych, SIMD i agresywny dosłownych optymalizacje aby szukają bardzo szybko.
Obsługuje wzorce ignorowania określone w .gitignoreplikach, więc pojedynczą ścieżkę pliku można dopasować do wielu wzorców globu jednocześnie.
Możesz użyć wspólnych parametrów, takich jak:
-i - Niewrażliwe wyszukiwanie.
-I - Zignoruj pliki binarne.
-w - Wyszukaj całe słowa (w przeciwieństwie do częściowego dopasowywania słów).
-n - Pokaż linię swojego meczu.
-C/ --context(np. -C5) - Zwiększa kontekst, dzięki czemu widzisz otaczający kod.
--color=auto - Zaznacz pasujący tekst.
-H - Wyświetla nazwę pliku, w którym znajduje się tekst.
-c- Wyświetla liczbę pasujących linii. Można łączyć z -H.