sed verschmelzen 2 Zeilen nach einem Muster

8

Ich möchte zwei Zeilen nach einem Muster mit sed zusammenfügen (keine awk bitte, weil ich Windows verwende) also hier ist zum Beispiel die Eingabe

%Vor%

und hier ist die Ausgabe:

%Vor%     
Leo92 31.08.2012, 09:24
quelle

2 Antworten

16

Mit sed funktioniert das:

%Vor%

Erklärung

  • /pattern/ stimmt mit dem Muster überein und führt den geschweiften Block { } .
  • aus
  • s/.*// löscht Muster aus dem Musterbereich, eine kürzere, aber obskurere Methode, Muster loszuwerden, besteht darin, Musterraum zu tauschen und Platz mit dem Befehl x zu halten / li>
  • N übernimmt die nächste Zeile aus der Eingabedatei und hängt sie an den Musterbereich an.
  • s/[\r\n]//g entfernt alle Zeilenumbrüche und Wagenrückläufe aus dem Musterbereich.
  • p druckt den Musterbereich.

Eine etwas kürzere Lösung zum Kombinieren von 3 Zeilen ist:

%Vor%     
Thor 31.08.2012, 09:29
quelle
1

Überprüft unter Windows:

%Vor%

Korrigiert nach Multiline sed replace

    
mmdemirbas 31.08.2012 09:36
quelle

Tags und Links