AWK - वर्कफ़्लो
एक विशेषज्ञ AWK प्रोग्रामर बनने के लिए, आपको इसके इंटर्न को जानना होगा। AWK एक साधारण वर्कफ़्लो का अनुसरण करता है - पढ़ें, निष्पादित करें और दोहराएं। निम्नलिखित चित्र में AWK के वर्कफ़्लो को दर्शाया गया है -
पढ़ें
AWK इनपुट स्ट्रीम (फ़ाइल, पाइप, या स्टडिन) से एक पंक्ति पढ़ता है और इसे मेमोरी में स्टोर करता है।
निष्पादित
सभी AWK कमांड इनपुट पर क्रमिक रूप से लागू होते हैं। डिफ़ॉल्ट रूप से AWK हर लाइन पर कमांड निष्पादित करता है। हम पैटर्न प्रदान करके इसे प्रतिबंधित कर सकते हैं।
दोहराना
यह प्रक्रिया तब तक दोहराती है जब तक कि फाइल अपने अंत तक नहीं पहुंच जाती।
कार्यक्रम की संरचना
आइए अब हम AWK की कार्यक्रम संरचना को समझते हैं।
बेगिन ब्लॉक
BEGIN ब्लॉक का सिंटैक्स इस प्रकार है -
Syntax
BEGIN {awk-commands}
BEGIN ब्लॉक को प्रोग्राम स्टार्ट-अप में निष्पादित किया जाता है। यह केवल एक बार निष्पादित होता है। वैरिएबल को इनिशियलाइज़ करने के लिए यह अच्छी जगह है। BEGIN एक AWK कीवर्ड है और इसलिए इसे अपर-केस में होना चाहिए। कृपया ध्यान दें कि यह ब्लॉक वैकल्पिक है।
बॉडी ब्लॉक
बॉडी ब्लॉक का सिंटैक्स इस प्रकार है -
Syntax
/pattern/ {awk-commands}
बॉडी ब्लॉक हर इनपुट लाइन पर AWK कमांड लगाता है। डिफ़ॉल्ट रूप से, AWK हर लाइन पर कमांड निष्पादित करता है। हम पैटर्न प्रदान करके इसे प्रतिबंधित कर सकते हैं। ध्यान दें कि बॉडी ब्लॉक के लिए कोई कीवर्ड नहीं हैं।
END ब्लॉक
END ब्लॉक का सिंटैक्स इस प्रकार है -
Syntax
END {awk-commands}
कार्यक्रम के अंत में END ब्लॉक निष्पादित होता है। END एक AWK कीवर्ड है और इसलिए इसे अपर-केस में होना चाहिए। कृपया ध्यान दें कि यह ब्लॉक वैकल्पिक है।
एक फाइल बनाते हैं marks.txt जिसमें सीरियल नंबर, छात्र का नाम, विषय का नाम और प्राप्त अंकों की संख्या शामिल है।
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
अब हम AWK स्क्रिप्ट का उपयोग करके हेडर के साथ फाइल कंटेंट प्रदर्शित करते हैं।
Example
[jerry]$ awk 'BEGIN{printf "Sr No\tName\tSub\tMarks\n"} {print}' marks.txt
जब इस कोड को निष्पादित किया जाता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Output
Sr No Name Sub Marks
1) Amit Physics 80
2) Rahul Maths 90
3) Shyam Biology 87
4) Kedar English 85
5) Hari History 89
शुरुआत में, AWK BEGIN ब्लॉक से हेडर प्रिंट करता है। फिर बॉडी ब्लॉक में, यह एक फ़ाइल से एक लाइन पढ़ता है और AWK के प्रिंट कमांड को निष्पादित करता है जो मानक आउटपुट स्ट्रीम पर सामग्री को प्रिंट करता है। यह प्रक्रिया तब तक दोहराती है जब तक फ़ाइल अंत तक नहीं पहुंच जाती।