¿Cómo verificar el final de línea de un archivo de texto para ver si está en formato UNIX o DOS?

Necesito convertir el archivo de texto al formato dos (finalizando cada línea con0x0d0x0a, más bien que0x0a solamente), si el archivo está en formato unix (0x0a sólo al final de cada línea).

Sé cómo convertirlo (sed 's/$/^M/'), pero no sabe cómo detectar los caracteres de final de línea de un archivo.

Estoy usando ksh.

Cualquier ayuda sería apreciada.

[Actualización]: Tipo de descifrado, y aquí está mi script ksh para hacer la comprobación.

[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

En el guión anterior,^M debe ser insertado envi conCtrl-V yCtrl-M.

Quiero saber si hay algún método mejor.

Respuestas a la pregunta(6)

Su respuesta a la pregunta