एडब्ल्यूके एनएफ क्या है?

Edablyuke Ena Epha Kya Hai



AWK स्क्रिप्टिंग लैंग्वेज में कुछ पूर्व-निर्धारित उद्देश्यों को पूरा करने के लिए बिल्ट-इन स्पेशल वेरिएबल्स की एक श्रृंखला भी होती है। ऐसा ही एक बिल्ट-इन वेरिएबल 'NF' है जिसकी अपनी पूर्व-निर्धारित कार्यक्षमता है। यह लेख Ubuntu 20.04 में कुछ प्रासंगिक उदाहरणों को प्रदर्शित करके इस अंतर्निहित AWK चर के उद्देश्य का पता लगाएगा।

उबंटू 20.04 में एडब्ल्यूके एनएफ:

'NF' AWK चर का उपयोग किसी भी प्रदान की गई फ़ाइल की सभी पंक्तियों में फ़ील्ड की संख्या को प्रिंट करने के लिए किया जाता है। यह बिल्ट-इन वेरिएबल फ़ाइल की सभी पंक्तियों के माध्यम से एक-एक करके पुनरावृति करता है और प्रत्येक पंक्ति के लिए अलग-अलग फ़ील्ड की संख्या को प्रिंट करता है। इस कार्यक्षमता को अच्छी तरह से समझने के लिए, आपको नीचे चर्चा किए गए उदाहरणों को पढ़ना होगा।

Ubuntu 20.04 में AWK NF के उपयोग को प्रदर्शित करने के उदाहरण:

नीचे दिए गए चार उदाहरण आपको AWK NF के उपयोग को समझने में आसान तरीके से सिखाने के लिए डिज़ाइन किए गए हैं। इन सभी उदाहरणों को Ubuntu 20.04 ऑपरेटिंग सिस्टम का उपयोग करके कार्यान्वित किया गया है।







उदाहरण # 1: पाठ फ़ाइल की प्रत्येक पंक्ति से फ़ील्ड्स की संख्या प्रिंट करें:

इस उदाहरण में, हम Ubuntu 20.04 में प्रत्येक पंक्ति या पंक्ति या टेक्स्ट फ़ाइल के रिकॉर्ड के फ़ील्ड या कॉलम की संख्या प्रिंट करना चाहते थे। आपको ऐसा करने की विधि दिखाने के लिए, हमने नीचे दी गई इमेज में दिखाई गई टेक्स्ट फ़ाइल बनाई है। इस पाठ फ़ाइल में पाकिस्तान के पांच अलग-अलग शहरों से प्रति किलोग्राम सेब की दरें शामिल हैं।





एक बार जब हमने यह नमूना पाठ फ़ाइल बना ली, तो हमने अपने टर्मिनल में इस पाठ फ़ाइल की प्रत्येक पंक्ति से फ़ील्ड की संख्या को प्रिंट करने के लिए निम्नलिखित कमांड को निष्पादित किया:





$ awk ' { एनएफ प्रिंट करें } 'AppleRates.txt

इस कमांड में, हमारे पास 'awk' कीवर्ड है जो दिखाता है कि हम एक AWK कमांड चला रहे हैं जिसके बाद 'प्रिंट NF' स्टेटमेंट है जो लक्ष्य टेक्स्ट फ़ाइल की प्रत्येक पंक्ति के माध्यम से पुनरावृति करेगा और प्रत्येक के लिए अलग-अलग फ़ील्ड की संख्या प्रिंट करेगा। पाठ फ़ाइल की पंक्ति। अंत में, हमारे पास उस टेक्स्ट फ़ाइल का नाम है (जिसके फ़ील्ड गिने जाने हैं) जो हमारे मामले में 'AppleRatest.txt' है।



चूँकि हमारे पास हमारी पाठ फ़ाइल की सभी पाँच पंक्तियों के लिए समान संख्या में फ़ील्ड थे, अर्थात, 2, इस आदेश को निष्पादित करने के कारण सभी पाठ फ़ाइल लाइनों के लिए फ़ील्ड की संख्या के रूप में समान संख्या मुद्रित की जाती है। इसे नीचे दी गई छवि से देखा जा सकता है:

उदाहरण # 2: पाठ फ़ाइल की प्रत्येक पंक्ति से प्रस्तुत करने योग्य तरीके से फ़ील्ड की संख्या प्रिंट करें:

ऊपर चर्चा किए गए उदाहरण में प्रदर्शित आउटपुट को लाइन नंबर और टेक्स्ट फ़ाइल की प्रत्येक पंक्ति के फ़ील्ड की संख्या प्रदर्शित करके भी अच्छी तरह से प्रस्तुत किया जा सकता है। इसके अलावा, हम अपनी पसंद के किसी विशेष वर्ण के साथ पंक्ति संख्या को फ़ील्ड की संख्या से अलग भी कर सकते हैं। हम आपको यह दिखाने के लिए उसी टेक्स्ट फ़ाइल का उपयोग करेंगे जिसका उपयोग हमने अपने पहले उदाहरण के लिए किया था। हालाँकि, इस मामले में निष्पादित होने वाली हमारी आज्ञा थोड़ी भिन्न होगी, और यह इस प्रकार है:

$ awk ' { प्रिंट एनआर, '---', एनएफ } 'AppleRates.txt

इस कमांड में, हमने बिल्ट-इन AWK वेरिएबल 'NR' पेश किया है जो हमारी लक्षित टेक्स्ट फ़ाइल की सभी लाइनों की लाइन संख्या को प्रिंट करेगा। इसके अलावा, हमने अपनी प्रदान की गई टेक्स्ट फ़ाइल के फ़ील्ड की संख्या से लाइन नंबरों को अलग करने के लिए एक विशेष वर्ण के रूप में तीन डैश, '-' का उपयोग किया है।

उसी पाठ फ़ाइल का यह थोड़ा संशोधित आउटपुट नीचे की छवि में दिखाया गया है:

उदाहरण # 3: टेक्स्ट फ़ाइल की प्रत्येक पंक्ति से प्रथम और अंतिम फ़ील्ड प्रिंट करें:

प्रदान की गई टेक्स्ट फ़ाइल की सभी पंक्तियों के फ़ील्ड की संख्या की गणना करने के अलावा, AWK के 'NF' विशेष चर का उपयोग प्रदान की गई टेक्स्ट फ़ाइल से अंतिम फ़ील्ड के वास्तविक मानों को निकालने के लिए भी किया जा सकता है। दोबारा, हमने उसी टेक्स्ट फ़ाइल का उपयोग किया है जिसका उपयोग हमने अपने पहले दो उदाहरणों के लिए किया था। हालाँकि, हम इस उदाहरण में अपनी टेक्स्ट फ़ाइल के पहले और अंतिम फ़ील्ड के वास्तविक मान प्रिंट करना चाहते हैं। उसके लिए, हमने निम्नलिखित कमांड निष्पादित की:

$ awk ' { प्रिंट $1 , $एनएफ } 'AppleRates.txt

इस कमांड में 'awk' कीवर्ड के बाद 'print $1, $NF' स्टेटमेंट आता है। '$1' विशेष चर का उपयोग पहले क्षेत्र या हमारी प्रदान की गई टेक्स्ट फ़ाइल के पहले कॉलम के मूल्यों को प्रिंट करने के लिए किया गया है, जबकि '$NF' AWK चर का उपयोग अंतिम फ़ील्ड या अंतिम कॉलम के मूल्यों को प्रिंट करने के लिए किया गया है। हमारे लक्ष्य पाठ फ़ाइल की। आपको यहाँ ध्यान देने की आवश्यकता है कि जब हम 'NF' AWK चर का उपयोग करते हैं, तो इसका उपयोग प्रत्येक पंक्ति के क्षेत्रों की संख्या को गिनने के लिए किया जाता है; हालाँकि, जब इसका उपयोग डॉलर '$' प्रतीक के साथ किया जाता है, तो यह केवल प्रदान की गई टेक्स्ट फ़ाइल के अंतिम फ़ील्ड से वास्तविक मान निकालेगा। शेष आदेश कमोबेश वही हैं जो पहले दो उदाहरणों के लिए उपयोग किए गए आदेशों के समान हैं।

नीचे दिखाए गए आउटपुट में, आप देख सकते हैं कि हमारी प्रदान की गई टेक्स्ट फ़ाइल के पहले और अंतिम फ़ील्ड के वास्तविक मान टर्मिनल पर प्रिंट किए गए हैं। आप देख सकते हैं कि यह आउटपुट पूरी तरह से 'कैट' कमांड के आउटपुट के समान है क्योंकि हमारे द्वारा प्रदान की गई टेक्स्ट फ़ाइल में केवल दो फ़ील्ड थे; इसलिए, एक तरह से, हमारी पूरी टेक्स्ट फ़ाइल की सामग्री टर्मिनल पर उपरोक्त कमांड को निष्पादित करने के परिणामस्वरूप मुद्रित की गई थी।

उदाहरण # 4: टेक्स्ट फाइल में मिसिंग फील्ड्स वाले रिकॉर्ड्स को अलग करें:

कभी-कभी, पाठ फ़ाइल में कुछ अनुपलब्ध फ़ील्ड वाले कुछ रिकॉर्ड होते हैं, और हो सकता है कि आप उन रिकॉर्ड्स को उनसे अलग करना चाहें जो हर पहलू में पूर्ण हैं। यह 'एनएफ' एडब्ल्यूके चर का उपयोग करके भी किया जा सकता है। उसके लिए, हमने 'ExamMarks.txt' नाम की एक टेक्स्ट फाइल बनाई है जिसमें तीन अलग-अलग परीक्षाओं में पांच अलग-अलग छात्रों के नाम के साथ उनके परीक्षा स्कोर शामिल हैं। हालाँकि, तीसरी परीक्षा के लिए, कुछ छात्र अनुपस्थित थे, जिसके कारण उनके अंक गायब थे। यह पाठ फ़ाइल इस प्रकार है:

लापता फ़ील्ड वाले रिकॉर्ड को पूरे फ़ील्ड वाले रिकॉर्ड से अलग करने के लिए, हम नीचे दिखाए गए आदेश को निष्पादित करेंगे:

$ awk ' { प्रिंट एनआर, '--- > ”, एन.एफ } ExamMarks.txt

यह आदेश वही है जो हमने अपने दूसरे उदाहरण के लिए उपयोग किया था। हालाँकि, निम्न छवि में दिखाए गए इस कमांड के आउटपुट से, आप देख सकते हैं कि पहला और चौथा रिकॉर्ड पूरा हो गया है, जबकि दूसरे, तीसरे और पाँचवें रिकॉर्ड में फ़ील्ड गायब हैं।

निष्कर्ष:

इस लेख का उद्देश्य 'एनएफ' एडब्ल्यूके विशेष चर के उपयोग की व्याख्या करना था। हमने पहले संक्षेप में चर्चा की कि यह चर कैसे काम करता है, और उसके बाद, हमने इस अवधारणा को चार अलग-अलग उदाहरणों की मदद से अच्छी तरह से समझाया। एक बार जब आप सभी साझा किए गए उदाहरणों को अच्छी तरह से समझ लेते हैं, तो आप फ़ील्ड की कुल संख्या की गणना करने और प्रदान की गई फ़ाइल के अंतिम फ़ील्ड के वास्तविक मानों को प्रिंट करने के लिए 'NF' AWK चर का उपयोग करने में सक्षम होंगे।