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