Schreiben Sie ein Shell-Skript, das Dateinamen und Inhalt in einer Zeile findet und ausgibt

Um alle PHP-Dateien zu sehen, die "abc" enthalten, kann ich dieses einfache Skript verwenden:

find . -name "*php" -exec grep -l abc {} \;

Ich kann das -l weglassen und ich werde als Ergebnis einen Teil des Inhalts anstelle der Dateinamen extrahiert:

find . -name "*php" -exec grep abc {} \;

Was ich jetzt möchte, ist eine Version, die beides zur gleichen Zeit macht, aber in der gleichen Zeile.

Erwartete Ausgabe:

path1/filename1: lorem abc ipsum
path2/filename2: ipsum abc lorem
path3/filename3: non abc quod

Mehr oder weniger gernegrep abc * tut.

Bearbeiten: Ich möchte dies als einfaches Shell-Skript verwenden. Es wäre großartig, wenn die Ausgabe in einer Zeile erfolgen würde, sodass weiteres Greifen möglich wäre. Aber es ist nicht notwendig, dass das Skript nur eine Zeile ist. Ich füge es sowieso in eine Bash-Skript-Datei ein.

Bearbeiten 2: Später fand ich "ack", was ein großartiges Werkzeug ist und ich benutze es jetzt in den meisten Fällen anstelle von grep. Das alles und noch viel mehr.http://betterthangrep.com/ Du würdest schreibenack --php --nogroup abc um das gewünschte Ergebnis zu erzielen

Antworten auf die Frage(3)

Ihre Antwort auf die Frage