GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo quitar el Bom de un archivo Utf-8?

Tengo un archivo en codificación UTF-8 con BOM y quiero eliminar el BOM. ¿Existen herramientas de línea de comandos de Linux para eliminar la lista de materiales del archivo?

$ file test.xml
test.xml:  XML 1.0 document, UTF-8 Unicode (with BOM) text, with very long lines

Respuesta aceptada:

Si no está seguro de si el archivo contiene una BOM UTF-8, entonces esto (suponiendo que la implementación de GNU de sed ) eliminará la lista de materiales si existe, o no realizará cambios si no existe.

sed '1s/^xEFxBBxBF//' < orig.txt > new.txt

También puede sobrescribir el archivo existente con -i opción:

sed -i '1s/^xEFxBBxBF//' orig.txt

Si está utilizando la versión BSD de sed (por ejemplo, macOS), entonces necesita que bash haga el escape:

 sed $'1s/xefxbbxbf//' < orig.txt > new.txt

Linux
  1. Bash Script para eliminar el archivo más antiguo de una carpeta?

  2. ¿Cómo eliminar las líneas que aparecen en el archivo B de otro archivo A?

  3. ¿Cómo eliminar X bytes del final de un archivo grande sin leer todo el archivo?

  4. ¿Cómo detectar si un archivo tiene un BOM UTF-8 en Bash?

  5. ¿Cómo recodificar a UTF-8 condicionalmente?

Cómo quitar el escritorio de Unity de Ubuntu 17.10

Cómo quitar la contraseña de un archivo PDF en Linux

Cómo obtener el nombre de archivo de la ruta completa en Linux

Cómo quitar líneas de un archivo usando el comando Sed

Cómo quitar (^M) caracteres de un archivo en Linux

Cómo quitar todos los caracteres de espacio en blanco de un archivo de texto