Ho ricevuto un file .csv con la FF FE
DBA:
$ 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.|
Quando lo utilizzo awk
per analizzarlo ricevo un mucchio di byte null, che sospetto sia dovuto all'ordine dei byte. Come posso scambiare l'ordine dei byte su questo file (usando la CLI) in modo che gli strumenti normali funzionino con esso?
Si noti che penso che questo file sia composto solo da caratteri ASCII (ad eccezione della distinta componenti), ma non posso confermare che come si grep
pensa sia un file binario:
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
La ricerca della stessa stringa in VIM mostra ogni corrispondenza dei caratteri !
L'uso iconv
per convertire in ASCII non elimina i valori di \ x00, in realtà aggrava il problema dato che ora sembrano byte nulli anziché 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.|
Come posso scambiare l'ordine dei byte su questo file (usando la CLI) in modo che gli strumenti normali funzionino con esso?