grep -r (oder -R) sucht nicht in Unterordnern

grep -r (oder -R) sucht nicht in Unterordnern

Es ist schon eine Weile her, dass ich nicht mehr Linux, sondern Windows verwende. Unter Windows suche ich immer dann nach einer Zeichenfolge in Dateien und Dateien in Unterordnern (zum Beispiel für CS-Dateien).

findstr /s /i /n "Thepattern" *.cs

vor kurzem habe ich herausgefunden, dass man grep in MINGW64 verwenden kann, das bei der Verwendung von Git installiert ist. Also habe ich versucht

grep --color -n -r "Thepattern" *.cs

Aber obwohl ich -rdie Suche einstelle, werden die Unterverzeichnisse nicht miteinbezogen.

Was mache ich mit grep falsch? Und wie sollte es sein?

EDIT: Anaksunaman hat mir die richtige Antwort gegeben:

grep --color -n -r --include=*.cs "Thepattern"

und mehrere andere Optionen :) Danke!

Antwort1

Ich habe herausgefunden, dass Sie grep in MINGW64 verwenden können, das bei der Verwendung von Git installiert wird.

Ich gehe davon aus, dass Sie sich auf Git Bash beziehen.

Was mache ich mit grep falsch? Und wie sollte es sein?

Sie sollten Folgendes versuchen:

 grep --color -n -r --include=*.cs "ThePattern"

--include=sollte nach kommen -r. Dadurch werden die Ergebnisse auf Dateien beschränkt, die mit „.cs“ enden. Sie können auch ein Verzeichnis angeben, wenn Sie möchten, z. B.:

grep --color -n -r --include=*.cs "ThePattern" ~/some/directory/'with spaces'

Bezieht sich in diesem Fall ~auf Ihren Benutzerprofilordner unter Windows.

Angenommen, „ThePattern“ ist ein Zeichenfolgenliteral, müssen Sie möglicherweise Folgendes einschließen, -ium die Groß-/Kleinschreibung außer Acht zu lassen, z. B.:

 grep --color -n -i -r --include=*.cs "ThePattern"

Andernfalls ist „ThePattern“ nicht dasselbe wie zB „Thepattern“ und Sie erhalten möglicherweise keine Ergebnisse.

Beachten Sie, dass Sie jederzeit grep --helpüber weitere Optionen Informationen erhalten können.

verwandte Informationen