E-Mail-Protokolle sind unglaublich schwer zu lesen. Wie kann ich eine Leerzeile zwischen den Zeilen in der Befehlszeile ausgeben? Angenommen, ich greife nach dem Protokoll. Auf diese Weise werden mehrere umbrochene Zeilen nicht verwechselt.
E-Mail-Protokolle sind unglaublich schwer zu lesen. Wie kann ich eine Leerzeile zwischen den Zeilen in der Befehlszeile ausgeben? Angenommen, ich greife nach dem Protokoll. Auf diese Weise werden mehrere umbrochene Zeilen nicht verwechselt.
Antworten:
sed G
# option: g G Copy/append hold space to pattern space.
G
wird nicht oft verwendet, ist aber nett für diesen Zweck. sed verwaltet zwei Pufferbereiche: den "Musterbereich" und den "Haltebereich". Die Linien verarbeitet durch Sed fließen normalerweise durch den Musterraum als verschiedene Befehle auf seinen Inhalt arbeiten ( s///
, p
, etc.); Der Speicherplatz beginnt leer und wird nur von einigen Befehlen verwendet.
Der G
Befehl fügt eine neue Zeile und den Inhalt des Haltebereichs an den Musterbereich an. Das obige sed- Programm G
fügt niemals etwas in den Hold-Bereich ein, sondern fügt effektiv nur eine neue Zeile an jede verarbeitete Zeile an.
-e
da wir dort nur ein einziges Befehlsargument brauchen.
Ist es das was du suchst?
grep SPAM mail.log | while read -r line; do echo; echo $line; done
read -r
, um zu vermeiden, dass Backslash-Zeichen als Sonderzeichen behandelt werden.
Wenn es mehr ist als nur nachzuschauen, ziehe ich es vor, sie in eine Textdatei zu senden und mit einem Texteditor zu öffnen, damit Sie die Zeilen so einstellen können, dass sie umgebrochen werden oder nicht, und einfach suchen können ... und die unerwünschten Zeilen löschen und so weiter ohne viele Befehle eingeben müssen.
cat file.log > log.txt
und gedit log.txt
oder ein Terminal-Editor wie Nano
Edit: oder was cp file.log log.txt
ist natürlich einfacher und schneller ... dank KeithB Kommentar
cat
nicht cp
?
cp
wäre einfacher und schneller ... lol - ich lese die anderen Antworten Umgang mit grep
und awk
so schrieb ich ihm die cat
Art und Weise , aber ich bin zu korrigieren , dass dank
whatever | sed G
sollten den Trick tun.