file - फाइलों में दिखाए गए<0xEF, 0xBB, 0xBF> वर्ण। उन्हें कैसे हटाएं?




unicode utf-8 (8)

'फ़ाइल' कमांड दिखाता है कि बीओएम मौजूद है या नहीं:

उदाहरण के लिए: 'myfile.xml' फ़ाइल प्रदर्शित करता है: "एक्सएमएल 1.0 दस्तावेज़, यूटीएफ -8 यूनिकोड (बीओएम के साथ) पाठ, बहुत लंबी लाइनों के साथ, सीआरएलएफ लाइन टर्मिनेटर के साथ"

डॉस 2unix बीओएम को हटा देगा।

मैं जावास्क्रिप्ट फाइलों को संपीड़ित कर रहा हूं और कंप्रेसर शिकायत कर रहा है कि मेरी फाइलों में  चरित्र है।

मैं इन पात्रों की खोज कैसे कर सकता हूं और उन्हें हटा सकता हूं?


@ ट्रिपली का समाधान मेरे लिए काम नहीं करता था। लेकिन एएससीआईआई में फ़ाइल एन्कोडिंग को बदलने और फिर यूटीएफ -8 में चाल चल रही थी :-)


उन पात्रों को हटाने का एक और तरीका - विम का उपयोग करके:

vim -b फ़ाइल नाम

अब वे "छिपा" वर्ण दिखाई दे रहे हैं ( <feff> ) और हटाया जा सकता है।


पिछले उत्तरों के लिए धन्यवाद, यहां एक sed (1) संस्करण है बस मामले में:

sed '1s/^\xEF\xBB\xBF//'

मैंने इसके लिए vimgrep का उपयोग किया है

:vim "[\uFEFF]" *

सामान्य vim खोज कमांड भी

/[\uFEFF]

विंडोज़ में आप UnxUtils से बैकपोर्टेड UnxUtils उपयोगिता का उपयोग कर सकते हैं।


पूंछ का उपयोग करना आसान हो सकता है:

tail --bytes=+4 filename > new_filename

यूनिक्स / लिनक्स पर:

sed 's/\xEF\xBB\xBF//' < inputfile > outputfile

MacOSX पर

sed $'s/\xEF\xBB\xBF//' < inputfile > outputfile

मैक के लिए $ के बाद $ नोटिस।

विंडोज़ पर

सुपर सेड sed के एक उन्नत संस्करण है। विंडोज के लिए यह एक स्टैंडअलोन .exe है, जिसका उद्देश्य कमांड लाइन से चलने के लिए है।








utf