Ich habe eine Datei in UTF-8-Codierung mit BOM und möchte die BOM entfernen. Gibt es Linux-Befehlszeilentools zum Entfernen der BOM aus der Datei?
$ file test.xml
test.xml: XML 1.0 document, UTF-8 Unicode (with BOM) text, with very long lines
Akzeptierte Antwort:
Wenn Sie sich nicht sicher sind, ob die Datei ein UTF-8-BOM enthält, dann ist dies (unter der Annahme der GNU-Implementierung von sed
) entfernt die Stückliste, falls vorhanden, oder nimmt keine Änderungen vor, falls dies nicht der Fall ist.
sed '1s/^xEFxBBxBF//' < orig.txt > new.txt
Sie können die vorhandene Datei auch mit dem -i
überschreiben Möglichkeit:
sed -i '1s/^xEFxBBxBF//' orig.txt
Wenn Sie die BSD-Version von sed
verwenden (z. B. macOS) dann müssen Sie bash das Escaping durchführen lassen:
sed $'1s/xefxbbxbf//' < orig.txt > new.txt