(9 Antworten)
Vor 2 Jahren geschlossen.
Wir haben eine Datei in Linux, die eine Zeile pro Datensatz enthält, aber das Problem tritt auf, wenn die Zeile einige neue Zeilenzeichen enthält. In diesem Fall wird der Backslash am Zeilenende angehängt und der Datensatz in mehrere Zeilen aufgeteilt. Also unten ist mein Problem:
"abc def xyz pqr"
sollte sein:
"abc def xyz pqr"
Ich habe versucht sed -I 's/\n/ /g' <file_name>
was nicht funktioniert. Ich habe auch den tr
ausprobiert Befehl, aber es ersetzt nur ein Zeichen, nicht die Zeichenfolge. Können Sie bitte einen Befehl vorschlagen, um dieses Problem zu lösen.
Akzeptierte Antwort:
Sie sollten in der Lage sein,
zu verwendensed -e :a -e '/\$/N; s/\n//; ta'
Siehe Peter Krumins’ Famous Sed One-Liners Explained, Part I, 39. Hängen Sie eine Zeile an die nächste an, wenn sie mit einem Backslash „“ endet .