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など)を使用している場合は、sed
bashにエスケープを実行させる必要があります。
sed $'1s/\xef\xbb\xbf//' < orig.txt > new.txt