GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué podría causar que el comando de archivo en Linux informe un archivo de texto como datos binarios?

Vim se esfuerza mucho por dar sentido a lo que sea que le arrojes sin quejarse. Esto lo convierte en una herramienta relativamente pobre para diagnosticar file Salida de.

El aviso "[convertido]" de Vim indica que había algo en el archivo que Vim no esperaría ver en la codificación de texto sugerida por la configuración local (LANG, etc.).

Otros ya han sugerido

  • cat -v
  • xxd

Podría intentar grepping para caracteres que no sean ASCII.

  • grep -P '[\x7f-\xff]' filename

La otra posibilidad son finales de línea no estándar para la plataforma (es decir, CRLF o CR), pero esperaría file para hacer frente a eso y reportar "archivo de texto DOS" o similar.


Si ejecuta file -D filename , file muestra información de depuración, incluidas las pruebas que realiza. Cerca del final, mostrará qué prueba fue exitosa para determinar el tipo de archivo.

Para un archivo de texto regular, se ve así:

[31> 0 regex,=^package[ \t]+[0-9A-Za-z_:]+ *;,""]
1 == 0 = 0
ascmagic 1
filename.txt: ISO-8859 text, with CRLF line terminators

Esto le dirá lo que encontró para determinar que es ese tipo de mimo.


Encontré el problema usando la búsqueda binaria para localizar las líneas problemáticas.

head -n {1/2 line count} file.cpp > a.txt
tail -n {1/2 line count} file.cpp > b.txt

Ejecutando file contra cada mitad, y repitiendo el proceso, me ayudó a localizar la línea ofensiva. Encontré un Control +P (^P ) carácter incrustado en él. Quitarlo resolvió el problema. Me escribiré un script en Perl para buscar estos caracteres (y otros extendidos) en el futuro.

¡Muchas gracias a todos los que respondieron todos los consejos!


Linux
  1. Cómo usar el comando Tar en Linux

  2. 4 formas de crear un archivo de texto en la terminal de Linux

  3. Ejemplos esenciales del comando de archivo en Linux

  4. 9 ejemplos útiles del comando Split en Linux

  5. Crear archivos usando la línea de comando en Linux

¿Qué es el comando Watch de Linux + ejemplos?

Ver el contenido de un archivo en la línea de comandos de Linux

Cómo agregar texto al comienzo del archivo en Linux

¿Qué es el comando matar en Linux?

3 formas de crear un archivo de texto rápidamente a través de la terminal de Linux

¿Cuál es el comando más confiable para encontrar el tamaño real de un archivo de Linux?