BOMを含む.csvファイルを受け取りましたFF FE
。
$ 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
多くのヌルバイトが表示されますが、これはエンディアンによるものと思われます。一般的なツールで使用できるように、CLIを使用してこのファイルのバイト順序をどのように変更できますか?
ファイルはASCII文字でしか見えませんが(BOMを除く)、grep
バイナリファイルのように見えるため、確認できません。
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
VIMで同じ文字列表示を検索するすべての役割マッチ!
ASCIIへの変換を使用すると、iconv
\ 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を使用してこのファイルのバイト順序をどのように変更できますか?
ベストアンサー1
したがって、ウィキペディア記事、FF FE
方法UTF16LE
。したがって、以下からiconv
変換するように指示する必要があります。UTF16LE
UTF8
iconv -f UTF-16LE -t UTF-8 dotan.csv > fixed.txt