GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar archivos de formato DOS en un sistema de archivos de Linux

Tuve buena suerte con

find . -name "*.php" -exec grep -Pl "\r" {} \;

¿Qué tal:

find . -name "*.php" | xargs file | grep "CRLF"

No creo que sea confiable intentar usar ^M para tratar de encontrar los archivos.


No estoy seguro de lo que quiere decir exactamente con "no confiable", pero es posible que desee probar:

find . -name '*.php' -print0 | xargs -0 grep -l '^M$'

Esto usa el más atroz-nombres-de-archivo-con-espacios-en-ellos-amigable opciones y solo encuentra retornos de carro inmediatamente antes del final de la línea.

Tenga en cuenta que el ^M es un único CTRL M carácter, no dos personajes.

Y también que mostrará una lista de archivos en los que incluso uno está en modo DOS, que es probablemente lo que desea de todos modos, ya que esos habrían sido archivos UNIX manipulados por un editor que no es UNIX.

Basado en su actualización de que vim está reportando sus archivos en formato DOS:

Si vim es informándolo como formato DOS, luego cada línea termina con CRLF . Así es como funciona vim. Si incluso uno la línea no tiene CR , entonces se considera formato UNIX y el ^M los caracteres son visibles en el búfer. Si todo está en formato DOS, el ^M los caracteres no se muestran:

Vim buscará terminaciones de línea tanto dos como unix, pero Vim tiene una preferencia incorporada por el formato unix.

- Si todas las líneas del archivo terminan en CRLF, se aplicará el formato de archivo dos, lo que significa que cada CRLF se eliminará al leer las líneas en un búfer, y la opción 'ff' del búfer será dos.
- Si una o más líneas terminan solo con LF, se aplicará el formato de archivo Unix, lo que significa que se eliminará cada LF (pero cada CR estará presente en el búfer y se mostrará como ^M), y el búfer 'ff' la opción será unix.

Si realmente quiere saber qué hay en el archivo, no confíe en una herramienta demasiado inteligente como vim :-)

Usar:

od -xcb input_file_name | less

y compruebe los finales de línea usted mismo.


Linux
  1. Cómo convertir archivos a codificación UTF-8 en Linux

  2. Cómo encontrar un archivo en Linux

  3. Cómo encontrar un archivo en Linux en todos los directorios recursivamente

  4. Cómo encontrar archivos duplicados en Linux

  5. ¿Encontrar todos los archivos de Python en el sistema de archivos de Linux?

Cómo encontrar archivos en Debian 10

Permisos de Linux:cómo encontrar los permisos de un archivo

Cómo encontrar archivos basados ​​en la marca de tiempo en Linux

Cómo encontrar archivos que contengan una cadena de texto específica en Linux

Cómo encontrar archivos modificados en las últimas 24 horas en Linux

Cómo comprimir un archivo en Linux