FF FE
BOM を含む.csvファイルを受け取りました。
$ head -n1 dotan.csv | hd
00000000 ff fe 41 00 64 00 20 00 67 00 72 00 6f 00 75 00 |..A.d. .g.r.o.u.|
を使用awk
して解析すると、nullバイトが大量に取得されますが、これはバイトオーダーが原因であると考えられます。このファイルのバイトオーダーを(CLIを使用して)スワップして、通常のツールがそれで動作するようにするにはどうすればよいですか?
このファイルはASCII文字(BOMを除く)だけであるとgrep
思いますが、バイナリファイルであるとは考えられないため、確認できません。
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
VIMで同じ文字列を検索すると、一致するすべての文字が表示されます。
iconv
ASCIIへの変換に使用しても\ x00値は削除されません。UTF-8ではなくnullバイトのように見えるため、実際には問題がさらに悪化します。
$ iconv -f UTF-8 -t ASCII dotan.csv > fixed.txt
iconv: illegal input sequence at position 0
$ iconv -f UTF-8 -t ASCII//IGNORE dotan.csv > fixed.txt
$ head -n1 fixed.txt | hd
00000000 41 00 64 00 20 00 67 00 72 00 6f 00 75 00 70 00 |A.d. .g.r.o.u.p.|
このファイルのバイトオーダーを(CLIを使用して)スワップして、通常のツールがそれで動作するようにするにはどうすればよいですか?
WindowsまたはMacで作成したCSVファイル?
—
cuonglm 2014年
ファイルの一部を提供できますか?
—
cuonglm 2014年
ファイルの固有の問題を保存するファイルの匿名化された部分へのリンクは次のとおりです。ありがとうございました!
—
dotancohen 2014年