J'ai un fichier en encodage UTF-8 avec BOM et je souhaite supprimer le BOM. Existe-t-il des outils de ligne de commande Linux pour supprimer la nomenclature du fichier ?
$ file test.xml
test.xml: XML 1.0 document, UTF-8 Unicode (with BOM) text, with very long lines
Réponse acceptée :
Si vous n'êtes pas sûr que le fichier contient une nomenclature UTF-8, alors ceci (en supposant que l'implémentation GNU de sed
) supprimera la nomenclature si elle existe, ou n'apportera aucune modification si ce n'est pas le cas.
sed '1s/^xEFxBBxBF//' < orig.txt > new.txt
Vous pouvez également écraser le fichier existant avec le -i
choix :
sed -i '1s/^xEFxBBxBF//' orig.txt
Si vous utilisez la version BSD de sed
(par exemple macOS) alors vous devez laisser bash faire l'échappement :
sed $'1s/xefxbbxbf//' < orig.txt > new.txt