¿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.