UTF-8 BOMの変換BOMの確認xxdコマンドBOMなし $ xxd utf8-no-bom.txt 00000000: 3132 330d 0a 123.. "123"とだけ書かれたファイルとする。 BOMあり $ xxd utf8-bom.txt 00000000: efbb bf31 3233 0d0a ...123. 先頭が"efbbbf"で、続いて"123"と書かれたファイル。 fileコマンドBOMなし $ file utf8-no-bom.txt utf8-no-bom.txt: ASCII text, with CRLF line terminators BOMあり $ file utf8-bom.txt utf8-bom.txt: UTF-8 Unicode (with BOM) text, with CRLF line terminators BOM(バイトオーダーマーク)の実際
BOMの削除nkfコマンドcat utf8-bom.txt | nkf --oc=utf-8 cat utf8-bom.txt | nkf -W -w80 http://www.atmarkit.co.jp/ait/articles/1609/29/news016.html sedコマンドcat utf8-bom.txt | sed -e '1s/^\xef\xbb\xbf//' awkコマンドcat utf8-bom.txt | awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' tailコマンドcat utf8-bom.txt | tail --bytes=+4 複数のファイルからまとめて削除find . -type f -exec sed -i -e '1s/^\xEF\xBB\xBF//' {} \; http://muzso.hu/2011/11/08/using-awk-sed-to-detect-remove-the-byte-order-mark-bom BOMの追加nkfコマンドcat utf8-no-bom.txt | nkf --oc=utf-8-bom vimvim utf8-no-bom.txt # 1. vimで開く :set bomb # 2. :set bomb でBOMを設定する :w utf8-bom.txt # 3. :w で保存する |
|