1729 Stimmen

Wie kann ich jeden Zeilenumbruch ( \n ) mit einem Leerzeichen mit sed?

Wie kann ich einen Zeilenumbruch (" \n ") mit einem Leerzeichen (" ") unter Verwendung der sed Befehl?

Ich habe es erfolglos versucht:

sed 's#\n# #g' file
sed 's#^$# #g' file

Wie kann ich es reparieren?

0voto

Die meisten der bisherigen sed Befehlsbeispiele funktionieren bei mir auf meiner Unix-Box nicht und geben mir eine Fehlermeldung:

Label too long: {:q;N;s/\n/ /g;t q}

Dies funktioniert in allen Unix/Linux-Umgebungen:

line=$(while read line; do echo -n "$line "; done < yoursourcefile.txt)
echo $line |sed 's/ //g' > sortedoutput.txt

Die erste Zeile entfernt alle neuen Zeilen aus der Datei yoursourcefile.txt und wird eine einzige Zeile erzeugen. Und zweitens sed Befehl werden alle Leerzeichen entfernt.

-1voto

Sabby Punkte 9

Das ist wirklich einfach... Ich habe mich wirklich geärgert, als ich die Lösung gefunden habe. Es fehlte nur noch ein Schrägstrich. Das war's:

sed -i "s/\\\\\n//g" filename

-2voto

Tiago Punkte 17

Hier ist sed ohne Puffer (gut für Echtzeitausgabe).
Beispiel: Ersetzen \n con <br/> Bruch in HTML

echo -e "1\n2\n3" | sed 's/.*$/&<br\/>/'

-2voto

THE Sorcerer Punkte 13

Das Folgende ist viel einfacher als die meisten Antworten. Außerdem funktioniert sie:

echo `sed -e 's/$/\ |\ /g' file`

-3voto

Poo Punkte 713
sed -i ':a;N;$!ba;s/\n/,/g' test.txt

tr "\n" <file name>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X