मैं लिनक्स बैश कमांड का उपयोग कर अपनी फ़ाइल से सभी नियंत्रण वर्णों को हटाना चाहता हूं।फ़ाइल से नियंत्रण कक्ष हटा रहा है
ईओएफ (0x1A) जैसे कुछ नियंत्रण वर्ण हैं, विशेष रूप से समस्या उत्पन्न कर रहे हैं जब मैं किसी अन्य सॉफ़्टवेयर में अपनी फ़ाइल लोड करता हूं। मैं इसे हटाना चाहता हूं।
यहाँ मैं अब तक की कोशिश की है है:
$ cat file.txt | head -n 10 | grep '[[:cntrl:]]'
+
1
-
-
1
%
-
.
/
मैचों:
cat -v -e -t file.txt | head -n 10
^A+^X$
^A1^X$
^D ^_$
^E-^D$
^E-^S$
^E1^V$
^F%^_$
^F-^D$
^F.^_$
^F/^_$
^F4EZ$
^G%$
यह ग्रेप का उपयोग करके सभी नियंत्रण वर्ण सूची जाएगा:
यह सब नियंत्रण वर्ण सूची जाएगा बिल्ली कमांड के उपरोक्त आउटपुट।
अब, मैं सभी लाइनों नियंत्रण वर्ण युक्त नहीं दिखाने के लिए निम्न आदेश भाग गया लेकिन यह अभी भी एक ही उत्पादन दिखाया जा रहा है के रूप में ऊपर (नियंत्रण पात्रों के साथ लाइनों)
$ cat file.txt | head -n 10 | grep '[^[:cntrl:]]'
+
1
-
-
1
%
-
.
/
यहाँ हेक्स प्रारूप में उत्पादन होता है:
$ cat file.txt | head -n 10 | grep '[[:cntrl:]]' | od -t x2
0000000 2b01 0a18 3101 0a18 2004 0a1f 2d05 0a04
0000020 2d05 0a13 3105 0a16 2506 0a1f 2d06 0a04
0000040 2e06 0a1f 2f06 0a1f
0000050
जैसा कि आप देख सकते हैं, हेक्स मान, 0x01, 0x18 नियंत्रण वर्ण हैं।
मैं टीआर आदेश का उपयोग नियंत्रण वर्णों को हटाने की कोशिश की लेकिन एक त्रुटि मिली:
$ cat file.txt | tr -d "\r\n" "[:cntrl:]" >> test.txt
tr: extra operand `[:cntrl:]'
Only one string may be given when deleting without squeezing repeats.
Try `tr --help' for more information.
अगर मैं सभी नियंत्रण वर्णों को हटाने, मैं न्यू लाइन और गाड़ी वापसी को हटाने के साथ-साथ जो के रूप में प्रयोग किया जाता है खत्म हो जाएगा विंडोज़ पर न्यूलाइन अक्षर। मैं केवल "\ r \ n" जैसे आवश्यक रखने वाले सभी नियंत्रण वर्णों को कैसे हटाऊं?
धन्यवाद।
'grep' आउटपुट की लाइनों को grep करेगा जब तक कि आप '-o' विकल्प का उपयोग नहीं कर रहे हों। – devnull