Wie grepst du und gibst nur die passende Zeile zurück? d.h. der Pfad/Dateiname wird in den Ergebnissen weggelassen.
In diesem Fall möchte ich in allen .bar-Dateien im aktuellen Verzeichnis nach dem Begriff FOO suchen
find . -name '*.bar' -exec grep -Hn FOO {} \;
Keine Notwendigkeit, find
. Wenn Sie nur nach einem Muster in einem bestimmten Verzeichnis suchen, sollte dies ausreichen:
grep -hn FOO /your/path/*.bar
Wo -h
ist der Parameter zum Ausblenden des Dateinamens ab man grep
:
- h, - no-filename
Unterdrückt das Präfix von Dateinamen bei der Ausgabe. Dies ist die Standardeinstellung, wenn nur eine Datei (oder nur die Standardeingabe) durchsucht werden soll.
Beachten Sie, dass Sie verwendet haben
- H, --mit-Dateiname
Drucken Sie den Dateinamen für jede Übereinstimmung. Dies ist die Standardeinstellung, wenn mehr als eine Datei durchsucht werden muss.
Ersetzen Sie einfach -H
mit -h
. Prüfen man grep
für weitere Details zu Optionen
find . -name '*.bar' -exec grep -hn FOO {} \;
Von der Manpage:
-h, --no-filename
Suppress the prefixing of file names on output. This is the default when there
is only one file (or only standard input) to search.