![](https://seccdn.libravatar.org/avatar/cade75bc5a38eae7b8d86692a7433a68.jpg?s=120&d=mm&r=g)
On Tuesday, August 17, 2010 11:35:51 Lentes, Bernd wrote:
zu Übungszwecken wollte ich mal mittels sed ein Unix-formatiertes textfile in ein DOS-formatiertes Textfile umwandeln, sprich aus jedem "\n" ein "\n\r" machen. Alle meine Versuche blieben erfolglos:
sed 's/\n/\n\r/g' console_2.txt
sed 's/\d10/\d10\d13/g' console_2.txt
sed 's/\x0a/\x0d\x0a/g' console_2.txt
sed 's/\n/\r\n/g' console_2.txt
Alles nicht gefruchtet.
Im Internet bin ich dann auf folgendes gestoßen:
sed 's/$/\r/g' console_2.txt
Und das hat dann funktioniert. Ich verstehe leider weder, warum meine Versuche nicht funktionierten, noch warum das u.g. funktioniert. Ok, '$' steht für das Zeilenende, aber müsste dann nicht statt '\r' '\n\r' da stehen ?
Könnt Ihr mir auf die Sprünge helfen ?
Ich glaube Dein Missverständnis rührt daher, dass Du annimmst "\n\r" sei der Zeilentrenner in DOS. Es ist aber "\r\n". Um Deine Kodierung zu erreichen, müsstest Du schreiben: sed 's/^/\r/' console_2.txt Das "g"-Flag ist in beiden Fällen überflüssig, da es pro Zeile nur ein Ende und einen Anfang geben kann. Sed arbeitet zeilenweise. Zur Frage, warum sed kein "\n" in der Zeile findet, sei hier aus der Doku zitiert: `sed' operates by performing the following cycle on each lines of input: first, `sed' reads one line from the input stream, removes any trailing newline, and places it in the pattern space. Then commands are executed; each command can have an address associated to it: addresses are a kind of condition code, and a command is only executed if the condition is verified before the command is to be executed. Bevor er irgendwelche Kommandos auf der Zeile ausführt, löscht er alle newlines. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org