प्रत्येक तरफ एक बृहदान्त्र के साथ किसी भी लम्बाई के अल्फ़ान्यूमेरिक स्ट्रिंग्स के लिए grep


14

आप प्रत्येक तरफ एक बृहदान्त्र के साथ 1 से 50 वर्णों के अल्फ़ान्यूमेरिक स्ट्रिंग्स (आदर्श रूप से, किसी भी लम्बाई भी काम करेंगे) के लिए कैसे तैयार होंगे - एक विशिष्ट परिणाम स्ट्रिंग वाले सभी पंक्तियों का होगा :shopping:। अब तक मुझे नीचे कोड मिल गया है (मैंने इस पर कुछ बदलाव की कोशिश की है) जो काम नहीं करता है:

grep ':[[:alnum:]]{1,100}:' ~/x.txt

आपको बस स्विच grepसहित विस्तारित रेगेक्स क्षमताओं को सक्षम करने की आवश्यकता है -E
स्लम

जवाबों:


13

आपको इसके लिए विस्तारित नियमित अभिव्यक्ति सक्षम करने की आवश्यकता है:

grep -E ':[[:alnum:]]+:' ~/x.txt

4

बुनियादी नियमित अभिव्यक्तियों के साथ, आप इसे लिख सकते हैं:

grep ':[[:alnum:]]\{1,100\}:' ~/x.txt

ध्यान दें कि \{( उदाहरण के लिए \+या इसके विपरीत \?) मानक और पोर्टेबल है, और वास्तव में BRE के समतुल्य हैं +और ?आमतौर पर इसके साथ लिखे जाते हैं \{: \{1,\}और \{0,1\}grep -Eहालांकि यह मानक और पोर्टेबल है, इसलिए आप इसका उपयोग भी कर सकते हैं क्योंकि यह उन मामलों में अधिक पढ़ने योग्य regexps के लिए बनाता है।


1

आप एक विस्तारित नियमित गति का उपयोग कर रहे हैं, इसलिए आपको -E विकल्प का उपयोग करने की आवश्यकता है:

grep -E ':[[:alnum:]]{1,100}:' ~/x.txt

धन्यवाद! मैंने अन्य उत्तर को सही माना क्योंकि मैंने अपनी "आदर्श" स्क्रिप्ट को शीर्षक में नहीं लिखा था, और मैं उन लोगों को कारण नहीं बताना चाहता जो गलत उत्तर को कॉपी करने के लिए Google को जवाब देते हैं, लेकिन मैं आपका उपयोग करूंगा। :)

1
@TorThommesen - यदि यह सही नहीं है, तो आप अपने Q का शीर्षक संपादित कर सकते हैं।
slm

0

चूंकि किसी और ने इसका उल्लेख नहीं किया है, आप भी इसका उपयोग कर सकते हैं egrep, जो कि जैसा कि मैं समझता हूं, इसके बराबर है grep -E

egrep ':[[:alnum:]]{1,100}:' ~/x.txt

1
egrepEREs के साथ grep करने का ऐतिहासिक आदेश था। Grep और egrep की कार्यक्षमता तब से बनी हुई है (बहुत पहले) -E विकल्प के साथ grep में विलय कर दी गई थी। egrepअब अप्रचलित / पदावनत माना जाता है (लेकिन जाने की संभावना नहीं है क्योंकि कुछ लोग अभी भी इसके अभ्यस्त हैं)।
स्टीफन चेजेलस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.