ग्रीप और नियमित अभिव्यक्ति (लगातार पत्र)


1

मैं यह जानने की कोशिश कर रहा हूं कि grep में लगातार अक्षरों को कैसे सूचीबद्ध किया जाए। उदाहरण के लिए, यदि मैं एक पंक्ति में लगातार दो या OR के OR के साथ सभी शब्दों को सूचीबद्ध करना चाहता था तो मैं यह कैसे करूंगा

मेरी समझ से कमांड कुछ इस तरह दिखेगी जैसे कि [a] {2} | egrep [i] {2} | egrep [यू] {२}

लेकिन क्या होगा अगर यह शब्द है कि शब्द में आ और ii या तीन अक्षरों का कोई अन्य संयोजन है जो लगातार जुड़वा है?


Grep egrep नहीं है। कृपया शीर्षक में अधिक विशिष्ट हो।
reinierpost

2
अच्छी तरह से यह है - वे हुड के तहत एक ही कार्यक्रम कर रहे हैं, लेकिन जब के रूप में आमंत्रित किया egrep यह सिर्फ जोड़ता है -E विकल्प। यह नियमित अभिव्यक्ति सिंटैक्स को थोड़ा बदलता है लेकिन यह प्रश्न में पर्याप्त अंतर नहीं करता है।
David Z

जवाबों:


4

आपके प्रश्न में जो मिला है, वह वास्तव में तीन अलग-अलग कमांड हैं: यह किसी भी चीज़ की खोज करेगा aa, तो उन परिणामों को अगले पास करें egrep जो कुछ भी खोजता है ii, तो उन परिणामों को अंतिम तक पहुंचाता है egrep जो खोजता है uu। तो आप केवल उन पंक्तियों के साथ हवा देते हैं जिनमें तीनों संयोजन होते हैं aa, ii, तथा uu

आपको बस उपयोग करने की आवश्यकता होगी एक egrep आदेश, वैकल्पिक के साथ एक नियमित अभिव्यक्ति का उपयोग कर:

egrep 'aa|ii|uu'

यह उन सभी लाइनों से मेल खाएगा जिनमें से कोई भी हो aa, ii, या uu


1

आप नहीं कर सकते। रेगेक्स केवल नियमित अभिव्यक्ति के साथ काम करता है। आप देखेंगे कि नियमित अभिव्यक्तियों में किसी भी प्रकार की मेमोरी नहीं होती है (इस प्रकार कह नहीं सकते हैं? आप एक परिमित एटमोटा या टर्रिंग मशीन की तलाश कर रहे हैं।


हम्म। उदाहरण के लिए मैं जानता हूँ कि अगर मैं एक कमांड लिखता हूँ जैसे: egrep '(।) \ 1 (।) \ 2 (।) \ 3' / usr / शेयर / तानाशाही / शब्द यह क्रमिक रूप से लगातार अक्षरों के साथ शब्द दिखाएगा, लेकिन मैं मी विशिष्ट लोगों को लेने में सक्षम नहीं है। मैं एक ऐसा शब्द ढूंढना चाहता हूं जिसमें एक या एक शब्द हो, जिसमें ii या uu हो, लेकिन जरूरी नहीं कि तीनों एक ही समय में हों। मुझे नहीं लगता कि यह एक असंभव काम है। क्या आप थोड़ा और विस्तृत कर सकते हैं?
에이바

4
बस दो विचारों को मिलाएं: egrep '([aiu]) \ 1'
reinierpost

1
साइड नोट: तकनीकी रूप से जब आप बैकरेफर जैसे उपयोग करते हैं \1, जो आपके पास है वह एक नियमित अभिव्यक्ति नहीं है। (एक "अनियमित अभिव्यक्ति" मुझे लगता है :-P)
David Z
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.