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