Cómo verificar si el archivo tiene una lista de materiales en el texto utf-8

18

¿Cómo puedo verificar si un archivo de texto utf-8 tiene una lista de materiales de la línea de comandos?

fileEl comando me muestra UTF-8 Unicode text.

Pero no sé, significa que no hay una lista de materiales en el archivo.

Estoy usando Ubuntu 12.04.

hierro y
fuente
Tenga en cuenta que no hay BOM en UTF-8: esa es una característica de UTF-16. Un archivo UTF-8 puede comenzar con el carácter U + FEFF, pero en ese caso es un espacio de ancho cero.
Gilles 'SO- deja de ser malvado'

Respuestas:

30

filele dirá si hay una lista de materiales. Puedes probar:

$ /usr/bin/printf "\ufeff...\n" | file -
/dev/stdin: UTF-8 Unicode (with BOM) text

Nota: según el fileregistro de cambios, esta característica ya existía en 2007. Por lo tanto, esto debería funcionar en cualquier máquina actual.

vinc17
fuente
1
Gracias por responder. Mi fileversión es file-5.09y el resultado fue /dev/stdin: ASCII text. ¿Depende de la versión de file?
ironsand
@Tetsu Probé con file5.04 (compresión de Debian) y estuvo bien. Incluso en 2007, según el registro de cambios (no probado). Pero puedes hacer la prueba que he dado en mi respuesta.
vinc17
Acabo de instalar language-pack-jadesde apt, entonces su ejemplo funciona perfectamente. ¡Gracias por tu ayuda!
ironsand
4

Si lo ejecuta stat fileName, debería darle exactamente los tres caracteres. Cuando abrí el archivo en el editor, no pude ver nada. Entonces, notar que el tamaño del archivo era 3 me dio claridad de que tiene una lista de materiales.

Además, la publicación aquí fue útil en mi caso.

hexdump -n 3 -C 2.txt
00000000 ef bb bf
ef bb bf // YES
akshita007
fuente