Saya menerima file .csv dengan FF FE
BOM:
$ 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.|
Saat menggunakan awk
untuk mem-parsingnya, saya mendapatkan banyak byte nol, yang saya duga disebabkan oleh urutan byte. Bagaimana saya bisa menukar urutan byte pada file ini (menggunakan CLI) sehingga alat normal akan bekerja dengannya?
Perhatikan bahwa saya berpikir bahwa file ini hanya karakter ASCII (kecuali untuk BOM), tetapi saya tidak dapat mengonfirmasi grep
bahwa itu adalah file biner:
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
Mencari string yang sama di VIM menunjukkan setiap karakter yang cocok!
Menggunakan iconv
untuk mengkonversi ke ASCII tidak menghilangkan nilai \ x00, sebenarnya itu membuat masalah lebih buruk karena sekarang mereka terlihat seperti byte nol, bukan UTF-8!
$ 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.|
Bagaimana saya bisa menukar urutan byte pada file ini (menggunakan CLI) sehingga alat normal akan bekerja dengannya?