मुझे 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
इसे पार्स करने के लिए उपयोग करते समय मुझे अशक्त बाइट्स का एक गुच्छा मिल रहा है, जो मुझे संदेह है कि बाइट ऑर्डर के कारण है। मैं इस फ़ाइल (CLI का उपयोग करके) पर बाइट ऑर्डर को कैसे स्वैप कर सकता हूं ताकि सामान्य उपकरण इसके साथ काम करेंगे?
ध्यान दें कि मुझे लगता है कि यह फ़ाइल केवल ASCII वर्ण (BOM को छोड़कर) है, लेकिन मैं पुष्टि नहीं कर सकता grep
कि यह सोचता है कि यह एक बाइनरी फ़ाइल है:
$ grep -P '^[\x00-\x7f]' dotan.csv
Binary file dotan.csv matches
VIM में समान स्ट्रिंग की खोज करने से हर वर्ण मिलान होता है!
iconv
ASCII में कनवर्ट करने के लिए उपयोग करने से \ x00 मानों से छुटकारा नहीं मिलता है, वास्तव में यह समस्या को बदतर बना देता है क्योंकि अब वे 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.|
मैं इस फ़ाइल (CLI का उपयोग करके) पर बाइट ऑर्डर को कैसे स्वैप कर सकता हूं ताकि सामान्य उपकरण इसके साथ काम करेंगे?