2015-02-10 4 views
16

मैं टेक्स्ट फ़ाइल में प्रत्येक पंक्ति में पहले 5 वर्ण कैसे हटा सकता हूं?मैं vi का उपयोग कर टेक्स्ट फ़ाइल में प्रत्येक पंक्ति में पहले 5 वर्ण कैसे हटा सकता हूं?

4 Alabama 
    4 Alaska 
    4 Arizona 
    4 Arkansas 
    4 California 
    54 Can 
    8 Carolina 
    4 Colorado 
    4 Connecticut 
    8 Dakota 
    4 Delaware 
    97 Do 
    4 Florida 
    4 Hampshire 
    47 Have 
    4 Hawaii 

मैं अपने txt फ़ाइल में प्रत्येक पंक्ति की शुरुआत में संख्या और अंतरिक्ष निकालना चाहते हैं:
मैं इस तरह एक फ़ाइल है।

+0

यह है कि मैं क्या पाया है:।%/S^\ {5} // ग्राम – Emmy

उत्तर

48

:%s/^.\{0,5\}// चाल करना चाहिए। यह उन मामलों को भी संभालता है जहां 5 से कम वर्ण हैं।

+1

यह अच्छा जवाब मुझे पसंद है। धन्यवाद। – Emmy

7

प्रत्येक पंक्ति के पहले 5 वर्णों से मेल खाने के लिए नियमित अभिव्यक्ति ^..... का उपयोग करें। एक वैश्विक प्रतिस्थापन में इसका इस्तेमाल करते हैं:

:%s/^.....// 
+0

प्रत्येक पंक्ति में पहले 5 वर्ण अलग-अलग हैं, मुझे केवल पहले वर्णों को हटाने की आवश्यकता है चाहे वे क्या हैं। तो मुझे मैच की जरूरत नहीं है। – Emmy

+3

दरअसल बाड़मेर का मतलब रेगेक्सप मैच था - यह वही है जो प्रतिस्थापित हो रहा है। '^' रेखा की शुरुआत से मेल खाता है और '.' किसी भी चरित्र से मेल खाता है। ': s' कमांड पहले और दूसरे स्लैश के बीच पूरे मैच को प्रतिस्थापित करता है (इस मामले में पांच, संभावित रूप से अलग, रेखा की शुरुआत में वर्ण) पिछले दो स्लेश के बीच क्या है - कुछ भी प्रभावी ढंग से उन्हें हटा नहीं रहा है। – lared

1

:s/^.....// 

आप शायद "^" (लाइन की शुरुआत) की जरूरत नहीं है की कोशिश करो, और वहाँ 5 अक्षर के लिए शॉर्टकट होगा - लेकिन सरल अच्छा है :)

3

चूंकि टेक्स्ट इसके कॉलमर डेटा जैसा दिखता है, इसलिए आमतौर पर सहायक होता है।

:'<,'>! awk '{ print $2 }' 

बाहर डेटा के दूसरे स्तंभ मुद्रित करने के लिए: मैं V प्रयोग करेंगे लाइनों का चयन करने के लिए है, तो :! और उपयोग awk मारा। आपको रिक्त स्थान को पूरी तरह से गिनने से बचाता है।

2

चूंकि सभी लाइनें रेखांकित हैं, आपको इस समस्या को हल करने के लिए प्रतिस्थापन की आवश्यकता नहीं है। बस ऊपरी बाएँ स्थिति (gg) के लिए कर्सर ले आओ, तब: Ctrl + vGwlx

+0

यह सही उत्तर है। उपरोक्त नियमित अभिव्यक्ति उत्तर इस समस्या की सादगी के लिए बहुत अधिक हैं। अधिक सरलता से रखें, अवरुद्ध दृश्य फ़ाइल को समाप्त करने के लिए (ctrl + 'v' + आंदोलन,' G' को हटाने के लिए टेक्स्ट का चयन करें, 'l' चयन को स्थानांतरित करने के लिए कुछ बार जिसे आप हटाना चाहते हैं) और 'x हटाने के लिए। – Jangari

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

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