Wie kann ich alle Zeilenumbrüche mit Ausnahme des letzten Zeilenumbruchs durch Leerzeichen ersetzen? Ich kann alle Zeilenumbrüche durch Leerzeichen ersetzen, tr
aber wie kann ich das mit einigen Ausnahmen tun?
bash
shell-script
text-processing
tr
Gilles 'SO - hör auf böse zu sein'
quelle
quelle
-s
und-d
scheinen für diesen Fall wie gemacht zu sein.Sie können verwenden
tr
, um alle Zeilenumbrüche in Leerzeichen zu ersetzen und die Ausgabe ansed
das letzte Leerzeichen weiterzuleiten und es wieder in eine neue Zeile zu setzen:quelle
Neuimplementierung von vonbrands Idee in Perl, vorausgesetzt die Datei ist klein genug:
quelle
Sowas
sed -e 's;\n\(.\); \1;'
sollte man machen ...quelle
Das hat bei mir funktioniert.
quelle
tr
Befehl ersetzt alle Zeilenumbrüche durch Leerzeichen und Ihrsed
Befehl entfernt das letzte Leerzeichen. Dies führt zu einer Datei ohne abschließenden Zeilenumbruch und ist daher nicht das, was die Frage verlangt. Übrigens hatg
dersed
Befehl keinen Sinn, int zu verwenden . Da du verwendest$
, kann es nur am Ende passen, dasg
ist sinnlos. Sie müssen auch nicht aus dem Raum entkommen, das `` macht auch keinen Unterschied.