लिनक्स रेगुलर एक्सप्रेशन ट्यूटोरियल: ग्रेप रेगेक्स उदाहरण

लिनक्स नियमित एक्सप्रेशन क्या हैं?

लिनक्स रेगुलर एक्सप्रेशंस विशेष वर्ण हैं जो खोज डेटा और जटिल पैटर्न से मेल खाने में मदद करते हैं। नियमित अभिव्यक्तियों को 'रेगेक्सप' या 'रेगेक्स' के रूप में छोटा किया जाता है। इनका उपयोग कई लिनक्स प्रोग्राम जैसे कि grep, bash, rename, sed, आदि में किया जाता है।

नियमित अभिव्यक्ति के प्रकार

आसानी से समझने के लिए आइए हम एक-एक करके विभिन्न प्रकार के रेगेक्स सीखते हैं।

  • बुनियादी नियमित अभिव्यक्ति
  • अंतराल नियमित अभिव्यक्ति
  • विस्तारित नियमित अभिव्यक्ति
  • सारांश

यदि वीडियो उपलब्ध नहीं है तो यहां क्लिक करें

बुनियादी नियमित अभिव्यक्ति

रेग्युलर एक्सप्रेशंस के साथ आमतौर पर इस्तेमाल होने वाले कुछ कमांड्स tr, sed, vi और grep हैं। नीचे सूचीबद्ध कुछ मूल रेगेक्स हैं।

प्रतीक विवरण
किसी भी चरित्र को बदल देता है
मैच स्ट्रिंग की शुरुआत
$ स्ट्रिंग के अंत मैच
* शून्य या अधिक बार पूर्ववर्ती चरित्र से मेल खाता है
\ _ विशेष पात्रों का प्रतिनिधित्व करते हैं
() समूह नियमित अभिव्यक्ति
? बिल्कुल एक पात्र से मेल खाता है

एक उदाहरण देखते हैं।

मौजूदा फ़ाइल की सामग्री देखने के लिए बिल्ली का नमूना निष्पादित करें

'' A 'अक्षर वाली सामग्री खोजें।

' ^ ' एक स्ट्रिंग की शुरुआत से मेल खाता है। चलिए उस सामग्री की खोज करते हैं जो STARTS a

केवल लाइनें जो वर्ण से शुरू होती हैं, फ़िल्टर की जाती हैं। जिन लाइनों में शुरुआत में वर्ण 'a' नहीं होता है, उन्हें अनदेखा किया जाता है।

आइए एक और उदाहरण देखें -

केवल उन पंक्तियों का चयन करें जो $ का उपयोग करके टी के साथ समाप्त होती हैं

अंतराल नियमित अभिव्यक्ति

ये अभिव्यक्तियाँ हमें एक स्ट्रिंग में एक चरित्र की घटनाओं की संख्या के बारे में बताती हैं। वे

की अभिव्यक्ति विवरण
{n}

पूर्ववर्ती चरित्र से मेल खाता है जो 'n' बार प्रदर्शित होता है

{n, m} पूर्ववर्ती वर्ण से मेल खाता है जो 'n' बार प्रदर्शित होता है लेकिन m से अधिक नहीं
{n,} पूर्ववर्ती वर्ण से मेल खाता है जब यह 'n' बार या अधिक प्रकट होता है

उदाहरण:

वर्ण 'p' वाली सभी पंक्तियों को फ़िल्टर करें

हम यह जांचना चाहते हैं कि चरित्र 'पी' एक स्ट्रिंग में एक के बाद एक 2 बार ठीक दिखाई देता है। इसके लिए वाक्यविन्यास होगा:

cat sample | grep -E p\{2}

नोट: आपको इन नियमित अभिव्यक्तियों के साथ -E जोड़ना होगा।

विस्तारित नियमित अभिव्यक्ति

इन नियमित अभिव्यक्तियों में एक से अधिक अभिव्यक्ति के संयोजन होते हैं। उनमें से कुछ हैं:

की अभिव्यक्ति विवरण

\ +

पिछले चरित्र की एक या अधिक घटना से मेल खाता है

\ _?

पिछले चरित्र के शून्य या एक घटना से मेल खाता है

उदाहरण:

सभी वर्णों के लिए खोज 't'

मान लीजिए कि हम उन लाइनों को फ़िल्टर करना चाहते हैं जहाँ चरित्र 'a' से पहले अक्षर 't' है

हम कमांड का उपयोग कर सकते हैं

cat sample|grep "a\+t"

ब्रेस विस्तार

ब्रेस विस्तार के लिए सिंटैक्स या तो एक क्रम है या घुंघराले ब्रेस के अंदर वस्तुओं की एक अलग सूची है "{}"। एक अनुक्रम में शुरू और समाप्त होने वाली वस्तुओं को दो अवधियों "..." द्वारा अलग किया जाता है।

कुछ उदाहरण:

उपरोक्त उदाहरणों में, इको कमांड ब्रेस विस्तार का उपयोग करके तार बनाता है।

सारांश:

  • नियमित अभिव्यक्तियाँ पात्रों का एक सेट होती हैं जिनका उपयोग स्ट्रिंग्स में पैटर्न की जांच करने के लिए किया जाता है
  • उन्हें 'रेगेक्सप' और 'रेगेक्स' भी कहा जाता है
  • पटकथा लिखने के लिए नियमित अभिव्यक्ति सीखना महत्वपूर्ण है
  • कुछ बुनियादी नियमित अभिव्यक्ति हैं:
प्रतीक विवरण
किसी भी चरित्र को बदल देता है
मैच स्ट्रिंग की शुरुआत
$ स्ट्रिंग के अंत मैच
  • कुछ विस्तारित नियमित अभिव्यक्ति हैं:
की अभिव्यक्ति विवरण
\ + पिछले चरित्र की एक या अधिक घटना से मेल खाता है
\ _? पिछले चरित्र के शून्य या एक घटना से मेल खाता है
  • कुछ अंतराल नियमित अभिव्यक्ति हैं:
की अभिव्यक्ति विवरण
{n} पूर्ववर्ती चरित्र से मेल खाता है जो 'n' बार प्रदर्शित होता है
{n, m} पूर्ववर्ती वर्ण से मेल खाता है जो 'n' बार प्रदर्शित होता है लेकिन m से अधिक नहीं
{n,} पूर्ववर्ती वर्ण से मेल खाता है जब यह 'n' बार या अधिक प्रकट होता है
  • ब्रेस विस्तार का उपयोग स्ट्रिंग्स उत्पन्न करने के लिए किया जाता है। यह एक से कई स्ट्रिंग्स बनाने में मदद करता है।

दिलचस्प लेख...