こんな感じのを用意した。
超単純
#!/usr/bin/env bash
printf '\xef\xbb\xbf'
exec cat
なんとなく bomber というファイル名にして実行可能にし、パスを通した。
$ cat > ~/.bin/bomber << 'EOF'
#!/usr/bin/env bash
printf '\xef\xbb\xbf'
exec cat
EOF
$ chmod +x ~/.bin/bomber
使い方
ごく単純。
$ bomber < example.before.utf8.csv > example.after.utf8.csv
背景
(日本語環境の) Excel は BOM がなければ CP932 エンコーディングで CSV ファイルを読もうとする。
BOM アリだとちゃんと判別できる。
親切なブラウザのように、勝手に判定してはくれない。
注意
はっきりとしたバージョンはわからないが Excel 2007 などの古い Excel 環境では、この方法でも文字化けせずに開く事はできない。