AWK - लूप्स

यह अध्याय उपयुक्त उदाहरण के साथ AWK के छोरों की व्याख्या करता है। लूप्स का उपयोग बार-बार क्रियाओं के एक सेट को निष्पादित करने के लिए किया जाता है। लूप निष्पादन तब तक जारी रहता है जब तक लूप की स्थिति सही होती है।

पाश के लिए

का वाक्य विन्यास for पाश है -

वाक्य - विन्यास

for (initialization; condition; increment/decrement)
   action

शुरू में, forस्टेटमेंट इनिशियलाइज़ेशन एक्शन करता है, फिर यह कंडीशन चेक करता है। यदि स्थिति सही है, तो यह क्रियाओं को निष्पादित करता है, इसके बाद यह वेतन वृद्धि या क्षरण कार्य करता है। लूप निष्पादन तब तक जारी रहता है जब तक कि स्थिति सही न हो। उदाहरण के लिए, निम्नलिखित उदाहरण 1 से 5 प्रिंट करता हैfor पाश -

उदाहरण

[jerry]$ awk 'BEGIN { for (i = 1; i <= 5; ++i) print i }'

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

उत्पादन

1
2
3
4
5

घुमाव के दौरान

whileलूप क्रिया को तब तक क्रियान्वित करता रहता है जब तक कि कोई विशेष तार्किक स्थिति सत्य का मूल्यांकन नहीं करती है। यहाँ वाक्य रचना हैwhile पाश -

वाक्य - विन्यास

while (condition)
   action

AWK पहले स्थिति की जांच करता है; यदि स्थिति सही है, तो यह कार्रवाई को कार्यान्वित करता है। यह प्रक्रिया तब तक दोहराती है जब तक लूप स्थिति सही का मूल्यांकन नहीं करती है। उदाहरण के लिए, निम्नलिखित उदाहरण 1 से 5 प्रिंट करता हैwhile पाश -

उदाहरण

[jerry]$ awk 'BEGIN {i = 1; while (i < 6) { print i; ++i } }'

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

उत्पादन

1
2
3
4
5

दोहा-जबकि लूप

do-whileलूप, लूप के समान है, सिवाय इसके कि लूप के अंत में परीक्षण की स्थिति का मूल्यांकन किया जाता है। यहाँ वाक्य रचना हैdo-whileपाश -

वाक्य - विन्यास

do
   action
while (condition)

में do-whileलूप, एक्शन स्टेटमेंट कम से कम एक बार तब भी निष्पादित हो जाता है जब स्थिति स्टेटमेंट गलत का मूल्यांकन करता है। उदाहरण के लिए, निम्न उदाहरण 1 से 5 संख्याओं का उपयोग करके प्रिंट करता हैdo-while पाश -

उदाहरण

[jerry]$ awk 'BEGIN {i = 1; do { print i; ++i } while (i < 6) }'

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

उत्पादन

1
2
3
4
5

ब्रेक स्टेटमेंट

जैसा कि इसके नाम से पता चलता है, इसका उपयोग लूप निष्पादन को समाप्त करने के लिए किया जाता है। यहां एक उदाहरण है जो 50 से अधिक होने पर लूप को समाप्त करता है।

उदाहरण

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) { 
      sum += i; if (sum > 50) break; else print "Sum =", sum 
   } 
}'

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

उत्पादन

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

जारी बयान

continueकथन का उपयोग लूप के अंदर किया जाता है ताकि लूप के अगले पुनरावृत्ति को छोड़ सकें। यह उपयोगी है जब आप लूप के अंदर कुछ डेटा के प्रसंस्करण को छोड़ना चाहते हैं। उदाहरण के लिए, निम्न उदाहरण का उपयोग करता हैcontinue 1 से 20 के बीच सम संख्याओं को प्रिंट करने का विवरण।

उदाहरण

[jerry]$ awk 'BEGIN {
   for (i = 1; i <= 20; ++i) {
      if (i % 2 == 0) print i ; else continue
   } 
}'

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

उत्पादन

2
4
6
8
10
12
14
16
18
20

एग्जिट स्टेटमेंट

इसका उपयोग स्क्रिप्ट के निष्पादन को रोकने के लिए किया जाता है। यह पूर्णांक को एक तर्क के रूप में स्वीकार करता है जो AWK प्रक्रिया के लिए निकास स्थिति कोड है। यदि कोई तर्क नहीं दिया गया है,exitरिटर्न स्टेटस जीरो। यहां एक उदाहरण है जो निष्पादन को रोक देता है जब योग 50 से अधिक हो जाता है।

उदाहरण

[jerry]$ awk 'BEGIN {
   sum = 0; for (i = 0; i < 20; ++i) {
      sum += i; if (sum > 50) exit(10); else print "Sum =", sum 
   } 
}'

उत्पादन

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

Sum = 0
Sum = 1
Sum = 3
Sum = 6
Sum = 10
Sum = 15
Sum = 21
Sum = 28
Sum = 36
Sum = 45

आइए हम स्क्रिप्ट की वापसी स्थिति की जांच करें।

उदाहरण

[jerry]$ echo $?

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

उत्पादन

10