Zeilen paarweise zusammenfügen
Aus Bluelupo's Wiki
Oftmals hat man das Problem zwei Zeilen die nacheinander in zwei getrennten Zeilen stehen, in eine Zeile zusammen zufassen. Dazu ist das sed Kommandozeilen sehr gut geeignet.
Am Beispiel dieser Ausgabe aus der Datei /var/log/apt/history.log sieht man die Problematik deutlich. Start-Date- und Commandline-Zeilen folgen immer aufeinander. Übersichtlich wäre es, wenn die Ausgabe in einer Zeile erfolgen könnte.
# egrep '^(Start-Date:|Commandline:)' /var/log/apt/history.log Start-Date: 2015-01-07 17:21:10 Commandline: apt-get dist-upgrade Start-Date: 2015-01-07 22:09:11 Commandline: apt-get remove --purge --yes linux-headers-3.17-4.towo-siduction-amd64 linux-image-3.17-4.towo-siduction-amd64 Start-Date: 2015-01-07 22:09:25 Commandline: apt-get remove --purge --yes linux-headers-3.18-0.towo-siduction-amd64 linux-image-3.18-0.towo-siduction-amd64
Der Ausdruck des sed Befehls erledigt dies.
# egrep '^(Start-Date:|Commandline:)' /var/log/apt/history.log | sed '$!N;s/\n/ /' Start-Date: 2015-01-07 17:21:10 Commandline: apt-get dist-upgrade Start-Date: 2015-01-07 22:09:11 Commandline: apt-get remove --purge --yes linux-headers-3.17-4.towo-siduction-amd64 linux-image-[...] Start-Date: 2015-01-07 22:09:25 Commandline: apt-get remove --purge --yes linux-headers-3.18-0.towo-siduction-amd64 linux-image-[...]