2011-09-26 26 views
11

मैं अन्यथा खाली लाइनों से टैब को हटाने के लिए sed का उपयोग करना चाहता हूं। उदाहरण के लिए केवल \t\n वाली एक पंक्ति \n में बदलनी चाहिए। इसके लिए वाक्यविन्यास क्या है?sed का उपयोग कर खाली लाइनों से टैब को कैसे निकालें?

उत्तर

22

sed\t जैसे बचने के दृश्यों के बारे में नहीं पता है। आप बैश पर हैं तो आप कंसोल पर tab टाइप नहीं कर सकते

sed 's/^ *$//g' <filename> 

,: तो आप सचमुच अपने कंसोल पर एक tab टाइप करना होगा। आपको ^V करना होगा और फिर tab दबाएं। (Ctrl-V और फिर tab) एक शाब्दिक टैब मुद्रित करने के लिए।

+8

यदि बैश का उपयोग करते हैं, तो आप 'sed $'/^ \ t * $ // g'' भी कर सकते हैं, क्योंकि एकल-उद्धृत स्ट्रिंग स्वरूपों से डॉलर-चिह्न का उपयोग करना कोड जैसे \ t। –

+0

अच्छा एक मैक्स! इसके बारे में नहीं पता था। आपको इसे एक अलग उत्तर के रूप में रखना चाहिए .. –

+0

आपका बहुत करीब है। :) –

1

अन्य पोस्ट समाधान लाइन में 1 (और केवल 1) टैब होने पर काम करेगा। ध्यान दें कि Raze2dust बताता है कि sed को आपको एक शाब्दिक टैब टाइप करने की आवश्यकता है। एक विकल्प है:

sed '/[^  ]/!s/ //g' file-name.txt 

कौन सा विकल्प केवल उन टैबों से टैब को दूर करता है जिनमें केवल टैब हैं। उलटा वर्ग लाइनों से मेल खाता है जिसमें कुछ भी बग होता है - निम्नलिखित '!' यह उन पंक्तियों से मेल नहीं खाता है - जिसका अर्थ केवल उन पंक्तियों में है जिनमें केवल टैब हैं। प्रतिस्थापन तब केवल उन पंक्तियों पर चलता है, सभी टैब को हटा देता है।

2

एक खाली लाइन के साथ मनमाना खाली स्थान के लाइनों बदलने के लिए, का उपयोग

sed -r 's/^\s+$//' 

-r झंडा बढ़ाया रेगुलर एक्सप्रेशन का उपयोग करने के लिए कहते हैं, और^\ s + $ पैटर्न कुछ सफेद स्थान के साथ सभी लाइनों लेकिन कोई अन्य पात्रों से मेल खाता है ।

-1
grep -o ".*" file > a; mv a file; 
+0

और यह वही करता है, बिल्कुल? क्योंकि यह ओपी से क्या नहीं करता है। –

+0

यकीन नहीं है कि ट्रोलिंग है, लेकिन यदि ऐसा है, तो शानदार .... – ansiart

0

मैंने देखा है कि यूनिक्स द्वारा टी टी मान्यता प्राप्त नहीं है। कहा जा रहा है, वास्तविक कुंजी का उपयोग करें। नीचे दिए गए कोड में, टैब टैब कुंजी दबाकर दर्शाता है।

$ sed 's/टैब // जी' oldfile> newfile

अनुकूल टिप: सुनिश्चित करने के लिए आपके पास फ़ाइल में टैब आप अगर \ t प्रकट होता है

देखने के लिए उपयोग किए गए टैब निम्नलिखित कोड को दूर करने के प्रयास कर रहे हैं

$ od -c फ़ाइल नाम