Ich bin ein Linux-Neuling. Ich muss in allen * .java-Dateien unter / home / user1 / (einschließlich der Unterordner) nach einer Zeichenfolge "teststring" suchen. Wie kann ich es unter Linux per Shell-Befehl tun.
Ich bin ein Linux-Neuling. Ich muss in allen * .java-Dateien unter / home / user1 / (einschließlich der Unterordner) nach einer Zeichenfolge "teststring" suchen. Wie kann ich es unter Linux per Shell-Befehl tun.
Antworten:
Am einfachsten ist es, die Funktionen von GNU grep zu verwenden:
grep -r --include '*.java' teststring /home/user1
Wenn Sie jemals auf einer anderen Unix-Variante ohne GNU grep arbeiten, haben Sie folgende Möglichkeit:
find /home/user1 -name '*.java' -exec grep teststring {} +
grep -r teststring .
mit ack tippst du einfach:cd /home/user01 && ack --java teststring
ack --java teststring /home/user01
Fand es. Es zu posten, da es jemandem helfen könnte.
find /home/user01 -name *.java | xargs grep "teststring"
Bitte korrigieren Sie, ob es einen besseren Weg gibt.
-print0
und -0
beim Anschließen von Leitungen find
in xargs
richtig die Arbeit mit Dateien , die Leerzeichen oder Zeilenumbrüche in ihren Namen haben:find /home/user01 -name *.java -print0 | xargs -0 grep "teststring"