Wie überprüfe ich das Zeilenende einer Textdatei, um festzustellen, ob es sich um ein Unix- oder DOS-Format handelt?

Ich muss die Textdatei in das DOS - Format konvertieren (Ende jeder Zeile mit0x0d0x0a, eher, als0x0a nur), wenn die Datei im Unix-Format vorliegt (0x0a nur am Ende jeder Zeile).

Ich kann es konvertieren (sed 's/$/^M/'), aber nicht, wie man das Zeilenendezeichen einer Datei erkennt.

Ich benutze ksh.

Jede Hilfe wäre dankbar.

[Update]: Irgendwie habe ich es herausgefunden, und hier ist mein ksh-Skript, um die Prüfung durchzuführen.

[qiangxu@host:/my/folder]# cat eol_check.ksh
#!/usr/bin/ksh

if ! head -1 $1 |grep ^M$ >/dev/null 2>&1; then
  echo UNIX
else
  echo DOS
fi

Im obigen Skript^M sollte eingefügt werden invi mitCtrl-V undCtrl-M.

Möchten Sie wissen, ob es eine bessere Methode gibt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage