गैर-संवादात्मक इन-प्लेस फ़ाइल संपादन के लिए सबसे अच्छा उपकरण है ex।
ex -sc '%s/\(\.com\).*/\1/ | x' file.txt
यदि आपने उपयोग किया है viऔर यदि आपने कभी एक कमांड टाइप किया है जो कि :आपके द्वारा पूर्व कमांड का उपयोग करने वाले एक कोलन के साथ शुरू होता है । बेशक अधिक उन्नत या "फैंसी" आदेशों में से कई आप इस तरह से निष्पादित कर सकते हैं विम एक्सटेंशन (जैसे :bufdo) हैं और पोसिक्स विनिर्देशोंex में परिभाषित नहीं हैं , लेकिन उन विशिष्टताओं को गैर-दृश्य में वास्तव में आश्चर्यजनक डिग्री शक्ति और लचीलेपन की अनुमति है पाठ संपादन (चाहे इंटरैक्टिव या स्वचालित)।
ऊपर दिए गए कमांड के कई भाग हैं।
-sexबैच उपयोग के लिए तैयार करने के लिए मूक मोड सक्षम करता है । (आउटपुट संदेश एट अल दबाएं।)
-cफ़ाइल को (एक बार file.txtइस मामले में) एक बफर में खोलने पर कमांड को निष्पादित करने के लिए निर्दिष्ट करता है ।
%एक एड्रेस 1,$स्पेसिफ़ायर के बराबर है - इसका मतलब है कि निम्नलिखित कमांड बफर के सभी लाइनों पर लागू होता है।
sस्थानापन्न आदेश है कि आप पहले से ही परिचित होने की संभावना है। आमतौर पर इसका उपयोग किया जाता है viऔर इसमें sकमांड केsed समान अनिवार्य रूप से समान विशेषताएं होती हैं , हालांकि उन्नत रेगेक्स की कुछ विशेषताएं कार्यान्वयन द्वारा भिन्न हो सकती हैं। इस स्थिति में ".com" से पंक्ति के अंत तक को ".com" से बदल दिया जाता है।
ऊर्ध्वाधर पट्टी अनुक्रमिक कमांड को निष्पादित करने के लिए अलग करती है। कई (अधिकांश) exकार्यान्वयन में आप एक अतिरिक्त -cविकल्प का उपयोग कर सकते हैं , जैसे:
ex -sc '%s/\(\.com\).*/\1/' -c x file.txt
हालाँकि, यह POSIX द्वारा आवश्यक नहीं है।
xआदेश बाहर निकलता है, फ़ाइल में कोई परिवर्तन लेखन के बाद। इसके विपरीत wqजिसका अर्थ है "लिखना और छोड़ना", xकेवल फ़ाइल को लिखता है यदि बफर संपादित किया गया है। इस प्रकार यदि आपकी फ़ाइल अनलेडेड है, तो टाइमस्टैम्प संरक्षित रहेगा।
.comपहले/चरित्र के बाद और उसके बाद सब कुछ हटाने के बजाय केवल खोज करना चाहते हैं ? यदिen.wikipedia.org/wiki/Ubuntuआपकी सूची में URL जैसा है तो क्या होगा ?