BOMを使用したUTF-8エンコーディングのファイルがあり、BOMを削除したいと思います。ファイルからBOMを削除するためのLinuxコマンドラインツールはありますか?
$ file test.xml
test.xml: XML 1.0 document, UTF-8 Unicode (with BOM) text, with very long lines
承認された回答:
ファイルにUTF-8BOMが含まれているかどうかわからない場合は、これ(sed
のGNU実装を想定) )BOMが存在する場合は削除し、存在しない場合は変更を加えません。
sed '1s/^xEFxBBxBF//' < orig.txt > new.txt
既存のファイルを-i
で上書きすることもできます オプション:
sed -i '1s/^xEFxBBxBF//' orig.txt
BSDバージョンのsed
を使用している場合 (例:macOS)次に、bashにエスケープを実行させる必要があります:
sed $'1s/xefxbbxbf//' < orig.txt > new.txt