2013-02-22 12 views
5

मैं टेक्स्ट फ़ाइल में हेरफेर करने और पाठ से गैर-ASCII वर्णों को हटाने का प्रयास कर रहा हूं। मैं लाइन को हटाना नहीं चाहता। मैं केवल अपमानजनक पात्रों को हटाना चाहता हूं।गैर-ASCII वर्णों को हटाने का प्रयास केवल

sed '/[\x80-\xFF]/d'

+1

देखें [यह] (http://stackoverflow.com/questions/3337936/remove-non-ascii-characters-from-csv) उत्तर। – speakr

+1

इस धागे का उत्तर हो सकता है कि आप देख रहे हैं http://stackoverflow.com/questions/8571601/skip-remove-non-ascii-character-with-sed – Ifthikhan

+0

आपका आदेश गैर-असीसी वर्ण वाली सभी पंक्तियों को हटा देगा। यदि आप जो चाहते हैं वह नहीं है, तो डुप्लिकेट प्रश्नों की जांच करें –

उत्तर

33

सुझाव दिया समाधान sed, उदा के विशिष्ट संस्करण के साथ विफल हो सकता है: मैं काम करने के लिए निम्नलिखित अभिव्यक्ति पाने के लिए कोशिश कर रहा हूँ जीएनयू sed 4.2.1।

tr का उपयोग करना:

tr -cd '[:print:]' < yourfile.txt 

यह [\x20-\x7e] में नहीं कोई भी वर्ण निकाल देंगे।

यदि आप उदा। रखना चाहते हैं लाइन फ़ीड, बस \n जोड़ें:

tr -cd '[:print:]\n' < yourfile.txt 

तुम सच में सभी ASCII वर्ण (यहां तक ​​कि नियंत्रण कोड) रखना चाहते हैं:

tr -cd '[:print:][:cntrl:]' < yourfile.txt 

यह [\x00-\x7f] में नहीं कोई भी वर्ण निकाल देंगे।

+1

अरे स्पीकर, टेक्स्ट फ़ाइल के स्वरूप को संरक्षित करने का कोई तरीका है। Tr कमांड एक निरंतर लाइन पर सबकुछ सही करता है? –

+1

@ बोसरा: मैंने लाइन फ़ीड्स को संरक्षित करने के लिए एक उदाहरण जोड़ा। – speakr

+0

मैन, अगर मैं इसे कुछ और बार ऊपर उठा सकता हूं तो मैं चाहता हूं कि –

संबंधित मुद्दे

 संबंधित मुद्दे