Wie speichere ich die Ergebnisse in einer Textdatei, wenn ich den Befehl Grep verwende, um eine Suchzeichenfolge in einer Reihe von Dateien zu finden?
Gibt es auch einen Schalter für den Befehl Grep, der sauberere Ergebnisse für eine bessere Lesbarkeit liefert, z. B. einen Zeilenvorschub zwischen den einzelnen Einträgen oder eine Möglichkeit, Dateinamen und Suchergebnisse zu rechtfertigen?
Zum Beispiel eine Abwesenheit zu ändern ...
./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result
zu
./file/path: first result
./another/file/path: second result
./a/third/file/path/here: third result
Antworten:
Das
-n
druckt die Zeilennummer und>
leitet grep-Ergebnisse in die Ausgabedatei um.Wenn Sie die Ergebnisse "bereinigen" möchten, können Sie sie beispielsweise mit Pipe filtern
|
: Siegrep -n "test" * | grep -v "mytest" > output-file
stimmen mit allen Zeilen überein, die die Zeichenfolge "test" haben, mit Ausnahme der Zeilen, die mit der Zeichenfolge "mytest" übereinstimmen (das ist der Schalter-v
) - und leiten die um Ergebnis zu einer Ausgabedatei.Ein paar gute Grep-Tipps finden Sie in diesem Beitrag
quelle
>>
Die Umleitung der Programmausgabe erfolgt durch die Shell.
grep
Es gibt keinen Mechanismus zum Hinzufügen von Leerzeilen zwischen den einzelnen Übereinstimmungen, es werden jedoch Optionen wie der Kontext um die übereinstimmende Zeile und die Färbung der Übereinstimmung selbst bereitgestellt. Weiteregrep(1)
Informationen, insbesondere die Optionen-C
und, finden Sie in der Manpage--color
.quelle