UTF-8ファイルからBOMを削除するには?

UTF-8ファイルからBOMを削除するには?

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

ベストアンサー1

ファイルにUTF-8 BOMが含まれているかどうかわからない場合(仮想GNU実装sed)、BOMがある場合は削除し、存在しない場合は変更しません。

sed '1s/^\xEF\xBB\xBF//' < orig.txt > new.txt

次のオプションを使用して既存のファイルを上書きすることもできます-i

sed -i '1s/^\xEF\xBB\xBF//' orig.txt

BSDバージョン(macOSなど)を使用している場合は、sedbashにエスケープを実行させる必要があります。

 sed $'1s/\xef\xbb\xbf//' < orig.txt > new.txt

おすすめ記事