In normalen Windows-zu-Unix-Konvertierung können Sie etwas wie sed s/\r//g
tun, die die Zeichen aus dem Stream entfernt.Warum funktioniert sed 's/ r n/ r/g nicht wie erwartet?
Aber ich versuche, Endzeilen von Dateien zu konvertieren, die mac-codiert (\ r) oder Windows-codiert (\ r \ n) sein könnten. So kann ich das \ r nicht einfach entfernen, da es die Mac-Enden löschen würde, wenn es welche gibt. Ich muss zuerst die Zeilenende-Zeichen "kanonisieren". Dieser Kanonisierungsschritt konvertiert von \ r \ n in \ r (nach dem ich die \ r \ n Umwandlung vornehme). Diesen Schritt kann ich jedoch nicht mit sed
lösen. Ich habe versucht, so etwas wie diese:
$> echo -e "foo\r\nbar" | sed 's/\r\n/\r/g' | xxd -c 24 -g 1
00000000: 66 6f 6f 0d 0a 62 61 72 0a foo..bar.
konnte ich es so mit bbe lösen:
$> echo -e "foo\r\nbar" | bbe -e 's/\r\n/\r/g' | xxd -c 24 -g 1
00000000: 66 6f 6f 0d 62 61 72 0a foo.bar.
Ist es möglich, das gleiche mit sed zu tun?