Ich weiß, dass wir dos2unix verwenden können , um zwischen Windows- und Unix-Leitungsabschluss zu konvertieren. Ich frage mich, ob es einen Befehl gibt, der mir sagt, ob eine Datei eine Windows- oder Unix-Zeilenbeendigung hat.
8
$ file f1 f2 f3
f1: ASCII text, with CRLF, LF line terminators
f2: ASCII text, with CRLF line terminators
f3: ASCII text
Wenn Sie es für notwendig halten, jede Zeile in der Datei zu überprüfen, können Sie Folgendes tun:
$ grep -c "^M" f1 f2
f1:0
f2:3
$ wc -l f1 f2
3 f1
3 f2
6 total
Das "^ M" wurde mit Strg + V Strg + M eingegeben und ist das ASCII-Wagenrücklaufzeichen (CR).
Hier sehen wir, dass die Datei f1 drei Zeilen, aber keine CRs hat, sodass alle Zeilenenden Solo-LFs im Unix-Stil sein müssen.
Die Datei f2 hat die gleiche Anzahl von Zeilen und CRs, sodass zu vermuten ist, dass die von MSDOS und Windows verwendeten Zeilenenden CR, LF verwendet werden.
file
Gibt keinen Zeilenende-Status aus, wenn eine engere Übereinstimmung als ASCII gefunden werden kann, dsetup.py: a python script text executable
. h . A scheint keine Flagge zu finden, um dieses Verhalten zu ändern.file -m magicfile f1 f2 f3
Unter Windows können Sie dies schnell feststellen, indem Sie Ihre Datei im Editor öffnen. Der Editor zeigt Zeilenumbrüche nur bei Terminierungen im Windows-Stil (CR + LF) und nicht bei Unix-Terminierungen (LF) an. Ihr Unix-Text sieht also folgendermaßen aus:
Windows-Text sieht folgendermaßen aus:
Ich bin mit der Unix / Linux-Plattform nicht sehr vertraut, aber ich bin sicher, dass Sie ähnliche Hacks mit Programmen wie gedit oder emacs verwenden können.
quelle
Beachten Sie, dass aus Geschwindigkeitsgründen nur einzelne
\r
s und\n
s gezählt werden, aber es wäre eine ziemlich verrückte Datei, die die gleiche Anzahl beider Typen hatte und dennoch keine Windows CRLF-Datei war ...Beachten Sie auch, dass das * nix-Tool
file
die Datei nicht vollständig scannt, während diesesperl
Skript dies tut. Sie haben nicht erwähnt, auf welcher Plattform es ausgeführt werden soll. Ich habe einbash
Skript verwendet, um die Ausgabe von Perl zu testen, aber das kann in ein Fensterskript geändert werdencmd
.Sie können Ihre Datei einfach an sie weiterleiten.
quelle