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 -r
die 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, -i
um 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.