Pregunta

Quiero comprobar si existen archivos de DOS en un directorio específico. ¿Hay alguna manera de distinguir los archivos de DOS desde UNIX, aparte de los caracteres ^ M?

He intentado utilizar el archivo, pero da la misma salida para ambos.

$ file test_file
test_file: ascii text

Y después de la conversión:

$ unix2dos test_file test_file
$ file test_file.txt
test_file.txt: ascii text
¿Fue útil?

Solución

El CRLF (\r\n, ^M) Los finales de línea caracteres son la única diferencia entre los archivos ASCII Unix y DOS / Windows, así que no, no hay otra manera.

Lo que usted podría probar si usted tiene que fromdos comando es para comparar su rendimiento con el archivo original:

file=test_file
fromdos < $file | cmp $file -

Esta falla (no cero $?) si fromdos despojado cualquier \r de distancia.

dos2unix podría ser utilizado de una manera similar, pero no sé su sintaxis exacta.

Otros consejos

Si realmente poner nuevas líneas de Windows en, verá la siguiente salida de file:

 test_file.txt: ASCII text, with CRLF line terminators
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top