AWK - नियमित अभिव्यक्तियाँ

AWK नियमित अभिव्यक्ति को संभालने में बहुत शक्तिशाली और कुशल है। सरल नियमित अभिव्यक्तियों के साथ कई जटिल कार्यों को हल किया जा सकता है। कोई भी कमांड-लाइन विशेषज्ञ नियमित अभिव्यक्ति की शक्ति जानता है।

इस अध्याय में उपयुक्त उदाहरणों के साथ मानक नियमित अभिव्यक्ति शामिल हैं।

दूरसंचार विभाग

यह रेखा चरित्र के अंत को छोड़कर किसी भी एक वर्ण से मेल खाता है। उदाहरण के लिए, निम्न उदाहरण मेल खाता हैfin, fun, fan आदि।

उदाहरण

[jerry]$ echo -e "cat\nbat\nfun\nfin\nfan" | awk '/f.n/'

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं -

उत्पादन

fun
fin
fan

लाइन की शुरुआत

यह लाइन की शुरुआत से मेल खाता है। उदाहरण के लिए, निम्न उदाहरण पैटर्न के साथ शुरू होने वाली सभी लाइनों को प्रिंट करता हैThe

उदाहरण

[jerry]$ echo -e "This\nThat\nThere\nTheir\nthese" | awk '/^The/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

There
Their

पंक्ति का अंत

यह लाइन के अंत से मेल खाता है। उदाहरण के लिए, निम्न उदाहरण पत्र के साथ समाप्त होने वाली रेखाओं को प्रिंट करता हैn

उदाहरण

[jerry]$ echo -e "knife\nknow\nfun\nfin\nfan\nnine" | awk '/n$/'

उत्पादन

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

fun
fin
fan

मैच चरित्र सेट

इसका उपयोग कई पात्रों में से केवल एक से मेल खाने के लिए किया जाता है। उदाहरण के लिए, निम्न उदाहरण पैटर्न से मेल खाता हैCall तथा Tall लेकिन नहीं Ball

उदाहरण

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[CT]all/'

उत्पादन

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

Call
Tall

अनन्य सेट

विशेष सेट में, कैरेट वर्ग कोष्ठक में वर्णों के सेट को नकारता है। उदाहरण के लिए, निम्न उदाहरण केवल प्रिंट करता हैBall

उदाहरण

[jerry]$ echo -e "Call\nTall\nBall" | awk '/[^CT]all/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

Ball

परिवर्तन

एक ऊर्ध्वाधर पट्टी नियमित रूप से अभिव्यक्ति को मौखिक रूप से करने की अनुमति देती है। उदाहरण के लिए, निम्न उदाहरण प्रिंट करता हैBall तथा Call

उदाहरण

[jerry]$ echo -e "Call\nTall\nBall\nSmall\nShall" | awk '/Call|Ball/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

Call
Ball

शून्य या एक घटना

यह पूर्ववर्ती चरित्र के शून्य या एक घटना से मेल खाता है। उदाहरण के लिए, निम्न उदाहरण मेल खाता हैColour साथ ही साथ Color। हमने बनाया हेu का उपयोग करके एक वैकल्पिक चरित्र के रूप में ?

उदाहरण

[jerry]$ echo -e "Colour\nColor" | awk '/Colou?r/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

Colour
Color

शून्य या अधिक घटना

यह पूर्ववर्ती चरित्र के शून्य या अधिक घटनाओं से मेल खाता है। उदाहरण के लिए, निम्न उदाहरण मेल खाता हैca, cat, catt, और इसी तरह।

उदाहरण

[jerry]$ echo -e "ca\ncat\ncatt" | awk '/cat*/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

ca
cat
catt

एक या अधिक घटना

यह पूर्ववर्ती चरित्र की एक या अधिक घटना से मेल खाता है। उदाहरण के नीचे उदाहरण के लिए एक या अधिक घटनाओं से मेल खाता है2

उदाहरण

[jerry]$ echo -e "111\n22\n123\n234\n456\n222"  | awk '/2+/'

उपरोक्त कोड निष्पादित करने पर, आपको निम्न परिणाम मिलते हैं -

उत्पादन

22
123
234
222

समूहन

Parentheses ()समूह और चरित्र के लिए उपयोग किया जाता है | विकल्प के लिए प्रयोग किया जाता है। उदाहरण के लिए, निम्न नियमित अभिव्यक्ति या तो रेखाओं से मेल खाती हैApple Juice or Apple Cake

उदाहरण

[jerry]$ echo -e "Apple Juice\nApple Pie\nApple Tart\nApple Cake" | awk 
   '/Apple (Juice|Cake)/'

इस कोड को निष्पादित करने पर, आपको निम्न परिणाम प्राप्त होंगे -

उत्पादन

Apple Juice
Apple Cake