Ich habe mich gefragt, warum Sie beim Öffnen einer im Windows-Editor unter Unix erstellten Textdatei feststellen, dass dort, ^M
wo eine neue Zeile stehen sollte, eine neue Datei vorhanden sein sollte.
Mein Verständnis ist, dass in Windows jede Zeile mit \r\n
, dh 0x0D0A
in ASCII, beendet wird , während sie ^M
einen ASCII-Wert hat 0x5E4D
. Ich kann diese beiden nicht miteinander in Beziehung setzen.
Antworten:
Sie haben Recht damit, dass die Zeilenenden wichtig sind. Beide Betriebssysteme erwarten, dass die Zeile mit "\ n" endet, aber Windows fügt vorher auch ein "\ r" hinzu, das Unix nicht erwartet, sodass Unix-Programme das "\ r" auf ihre eigene Weise ausgeben.
Die Datei endet nicht mit den beiden Zeichen "^" und "M". Dies ist nur eine übliche Methode, um nicht druckbare Zeichen darzustellen. Programme geben "^" und einen Buchstaben aus, der dem Wert des Bytes entspricht, beginnend mit A für 1. M ist der 13. Buchstabe, und '\ r' ist ASCII-Code 13 (oder 0xD, wie Sie sagten), sodass Sie "^" sehen M "
quelle
dos2unix
undunix2dos
Textdateien zwischen Formaten konvertieren.^J
für\n
?