Thread new lines werden nicht erkannt: new lines von windows unter os x
(19 answers)
Opened by Gast at 2006-01-12 00:41
Das klappt so nicht unter DOS/Windows, da beim Einlesen aus einer Textdatei bereits "\x0d\x0a" in "\x0a" bzw. "\n" umgewandelt wird.
Deshalb muss vor der Schleife noch binmode eingefuegt werden: Am besten auch while (<>) durch while (<STDIN>) ersetzen, damit wirklich nur von STDIN gelesen wird. Dann muss man noch mit Ein- und Ausgabeumleitung arbeiten und es funktioniert von der Kommandozeile: Code: (dl
)
C:\> perl dos2unix.pl < dostext.txt > unixtext.txt Die Eingabeumleitung ist dabei auch wichtig, denn falls die Daten nicht von STDIN kommen, sondern der Diamantoperator <> "magisch" Dateien aus @ARGV einliest und oeffnet, dann heisst das Filehandle nicht STDIN sondern ARGV und das binmode STDIN wirkt nicht: Code: (dl
)
C:\> perl dos2unix.pl dostext.txt > unixtext.txt # klappt nicht! Es liegt zwar nahe, statt binmode STDIN ein binmode ARGV zu versuchen, aber vor der Schleife ist das ARGV-Filehandle noch gar nicht geoeffnet und in der Schleife ist es zu spaet - die erste "Zeile" (tatsaechlich die ganze Datei) ist dann schon eingelesen. Da muesste man also ohne Magie arbeiten und die Dateien "von Hand" oeffnen. |