Otrzymałem plik .csv z 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.|
Podczas awk
analizowania otrzymuję wiązkę zerowych bajtów, co, jak podejrzewam, wynika z kolejności bajtów. Jak mogę zamienić kolejność bajtów w tym pliku (za pomocą CLI), aby normalne narzędzia z nim działały?
Zauważ, że myślę, że ten plik to tylko znaki ASCII (oprócz BOM), ale nie mogę tego potwierdzić, ponieważ uważam grep
, że jest to plik binarny:
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
Wyszukiwanie tego samego ciągu w VIM pokazuje dopasowanie każdego znaku !
Użycie iconv
konwersji do ASCII nie pozbywa się wartości \ x00, w rzeczywistości pogarsza problem, ponieważ teraz wyglądają jak bajty zerowe zamiast 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.|
Jak mogę zamienić kolejność bajtów w tym pliku (za pomocą CLI), aby normalne narzędzia z nim działały?