Możesz użyć grep
narzędzia do rekurencyjnego przeszukiwania bieżącego folderu za pomocą -r
parametru, 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 find
skł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
, pt
lub 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 .gitignore
plikach, 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
.