it-swarm.com.de

grep ohne Pfad / Datei: Zeile anzuzeigen

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 {} \;
197
Allan Bendy

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.

317
fedorqui

Ersetzen Sie einfach -H mit -h. Prüfen man grep für weitere Details zu Optionen

find . -name '*.bar' -exec grep -hn FOO {} \;
7
jkshah

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.
1
TC1