Sé que podemos usar dos2unix para convertir entre Windows y la terminación de línea Unix. Me pregunto si hay algún comando que pueda decirme si un archivo tiene la terminación de línea de Windows o Unix.
8
$ file f1 f2 f3
f1: ASCII text, with CRLF, LF line terminators
f2: ASCII text, with CRLF line terminators
f3: ASCII text
Si considera necesario verificar cada línea del archivo, puede hacer esto:
$ grep -c "^M" f1 f2
f1:0
f2:3
$ wc -l f1 f2
3 f1
3 f2
6 total
La "^ M" se ingresó usando Ctrl + V Ctrl + M y es el carácter de retorno de carro (CR) ASCII.
Aquí vemos que el archivo f1 tiene tres líneas pero no CR, por lo que todas las terminaciones de línea deben ser LF solo de estilo Unix.
El archivo f2 tiene el mismo número de líneas y CR, por lo que es razonable adivinar que usa las terminaciones de línea CR, LF que usan MSDOS y Windows.
file
no muestra el estado final de la línea si puede encontrar una coincidencia más cercana que ASCII, es decirsetup.py: a python script text executable
. Parece que A no puede encontrar una bandera para cambiar ese comportamiento.file -m magicfile f1 f2 f3
En Windows, una forma rápida de saberlo es abrir su archivo en el Bloc de notas. El Bloc de notas mostrará saltos de línea solo en terminaciones de estilo de Windows (CR + LF) y no en terminaciones de Unix (LF). Entonces su texto de Unix se verá así:
mientras que el texto de Windows se verá así:
No estoy muy familiarizado con la plataforma unix / linux, pero estoy seguro de que puedes usar hacks similares con programas como gedit o emacs.
fuente
Tenga en cuenta, que por causa de la velocidad, sólo individuales
\r
s y\n
s son contados, pero sería un archivo bastante loco que tenía un número igual de ambos tipos y, sin embargo, no era un archivo de Windows CRLF ...También tenga en cuenta que la herramienta * nix
file
no realiza una exploración completa del archivo, mientras que esteperl
script sí lo hace. No ha mencionado en qué plataforma desea que se ejecute; He usadobash
script para probar la salida de perl, pero eso se puede cambiar acmd
script de Windows .Simplemente puede canalizar su archivo a él.
fuente