Bestimmen Sie das neue Zeilenzeichen in einer Textdatei?

8

Gibt es bei einem gegebenen Text ein Programm, das erkennen kann, um welches neue Zeilenzeichen es sich handelt, das Windows-, Mac- oder Linux-Zeichen?

ZB wird der folgende Text durch gezeigt less

memor: ^ M ^ Mis Speicher, auf den die CPU direkt zugreifen kann ^ M ^ Der Begriff "Speicher" wird häufig (aber nicht immer) mit adressierbarem Halbleiterspeicher assoziiert, dh integrierten Schaltkreisen, die aus Transistoren auf Siliziumbasis bestehen. ^ Der Halbleiterspeicher ist in ^ organisiert Speicherzellen

Ich dachte ^ M ist das neue Zeilenzeichen unter Mac. Aber in Emacs habe ich nach Strg-q Strg-m gesucht und nichts gefunden.

Vielen Dank.

Tim
quelle
1
fileBefehl sollte einen Hinweis geben, dos2unixkönnte auch helfen.
Archemar

Antworten:

9

filewird über Zeilenenden für Textdateien berichten. Wenn Sie beispielsweise fileeine ASCII-Unix / Linux / OSX-Textdatei ausführen , wird einfach Folgendes gemeldet:

$ file test.txt
test.txt: ASCII text

Wenn die Datei jedoch DOS / Windows-Zeilenenden hat, wird stattdessen Folgendes gemeldet:

test.dos: ASCII text, with CRLF line terminators

Bis OS 9 verwendeten Macs CR als Zeilenende. Wenn eine solche Datei angezeigt wird, filewird Folgendes gemeldet:

test.mac: ASCII text, with CR line terminators

Unter OSX wurden Macs in Standard-Unix-Zeilenenden konvertiert.

John1024
quelle
Wenn eine Textdatei eine Mischung aus Text von Linux, Macs und Windows ist. Wird fileimmer noch das richtige neue Zeilenzeichen gemeldet?
Tim
@ Tim Ich habe es an einigen gemischten Dateien getestet und es hat korrekt gemischte Endungen gemeldet. Beispielsweise wurde bei allen drei Typen berichtet ASCII text, with CRLF, CR, LF line terminators.
John1024
Ich habe es versucht und es gab mir ASCII text, with very long lines. Die Terminatoren sind LF
Wörter für den
@wordsforthewise LF-Terminatoren sind der Unix- und Linux-Standard. Wenn eine Datei LF-Terminatoren enthält, filewird nicht erwähnt, welche Terminatoren verwendet werden. Siehe das erste Beispiel in der obigen Antwort. Terminatoren werden nur erwähnt, wenn die Datei Nicht-Unix-Terminatoren enthält. Siehe das zweite und dritte Beispiel in der obigen Antwort. Unabhängig davon ist es wahrscheinlich, dass Ihre Datei eine oder mehrere lange Zeilen enthält.
John1024
1
Ja ich verstehe. Ich fand es nur lustig, dass dort "sehr lange
Schlangen