Zeilenweises Speichern bei Win und Linux anders? Wie bitwises Angleichen?

-horn-

Bekanntes Mitglied
Moien,

mir wurde gesagt, dass das zeilweise speichern unter windows und linux ander sei, weil die zeilenumbrüche anders gesetzt werden.
ich brauche aber, das egal nach welchem os das gemacht wird die ausgabedateien gleich bleiben, weil ich einen bitwise validator verschiedene ergebnisfiles vergleichen lasse.
bei windows soll am ende der zeile ein ^M stehen und das ist natürlich schlecht für den validator.

kann mir da jemand helfen, wie ich das immer gleich speichere?

Andreas
 
Was ein ^M ist, weiß ich nicht, aber bei Win ist Zeilenumbruch
Code:
\r\n
und bei *nix:
Code:
\n
. Du kannst ja beim Schreiben manuell den Zeilenumbruch setzen.
 
ich brauche aber, das egal nach welchem os das gemacht wird die ausgabedateien gleich bleiben, weil ich einen bitwise validator verschiedene ergebnisfiles vergleichen lasse.

Wenn du die Dateien als Text liest oder schreibst, kann dir nicht nur das Zeilenende einen Strich durch die Rechnung (sprich binären Vergleich) machen sondern auch ein nicht passendes (übereinstimmendes) Encoding.
 
Was ein ^M ist, weiß ich nicht
^M steht für 0x0D bzw. 13, und das steht für das gleiche wie \r, nämlich CR (Carriage Return, Wagenrücklauf).
Zur Ergänzung: ^J steht für 0x0A bzw. 10, und das steht für das gleiche wie \n, nämlich LF (Line Feed, Zeilenvorschub).

Einfach ein Terminal aufmachen und Ctrl+M bzw. Ctrl+J drücken. 😀 Mit Ctrl+H sollte man einzelne Zeichen in der Kommandozeile löschen können. Mehr Details dazu in jeder Tabelle über die ASCII-Steuerzeichen, die Analogie sollte ja jetzt klar sein. 😉

Im vi(m) steht bei Dateien mit Windows-Zeilenumbruch noch das ^M auch so am Ende jeder Zeile.

Ark
 

Neue Themen


Zurück
Oben