Linux-AWK/C2/User-Defined-Functions-in-awk/Hindi
From Script | Spoken-Tutorial
Revision as of 09:49, 8 July 2019 by Sakinashaikh (Talk | contribs)
|
|
00:01 | नमस्कार User-defined function in awk पर स्पोकन ट्यूटोरियल में आपका स्वागत है। |
00:07 | इस ट्यूटोरियल में हम निम्न के बारे में सीखेंगे-function definition का सिंटैक्स, Function call और Return statement |
00:17 | हम यह कुछ उदाहरणों के माध्यम से समझेंगे। |
00:21 | इस ट्यूटोरियल को रिकॉर्ड करने के लिए मैं उपयोग कर रही हूँ Ubuntu Linux 16.04 Operating System और gedit text editor 3.20.1 |
00:34 | आप अपने पसंद के किसी भी टेक्स्ट एडिटर का उपयोग कर सकते हैं। |
00:38 | इस ट्यूटोरियल का अभ्यास करने के लिए आपको इस वेबसाइट पर पिछले awk ट्यूटोरियल्स देखने चाहिए। |
00:45 | आपको किसी भी प्रोग्रामिंग भाषा का कुछ ज्ञान होना चाहिए जैसे C या C++. |
00:52 | यदि नहीं, तो कृपया हमारी वेबसाइट पर समरूपी ट्यूटोरियल्स देखें। |
00:58 | इस ट्यूटोरियल में उपयोगित फाइल्स इस ट्यूटोरियल के पेज पर Code Files लिंक में उपलब्ध हैं। कृपया उन्हें डाउनलोड और एक्स्ट्रैक्ट करें। |
01:08 | अब user defined functions के बारे में सीखते हैं। function सिंटैक्स निम्न है। |
01:16 | और सिंटैक्स सुगम है। |
01:20 | यहाँ keyword function अनिवार्य है। |
01:24 | function को call करने के लिए, parentheses में arguments के बाद function का नाम लिखें। |
01:31 | ध्यान दें, function के नाम और argument के open parentheses के बीच space की अनुमति नहीं है। |
01:39 | अब हम एक उदाहरण देखेंगे। |
01:42 | हमारी awkdemo.txt file में छठा field stipend दर्शाता है। |
01:47 | मानिए कि stipend या तो शून्य है या चार अंकों से बना है। |
01:54 | मान लीजिए stipend 8900 है। तो इसे शब्दों में 8 हजार 9 सौ प्रिंट करें। |
02:03 | यदि stipend 0 है, शब्दों में शून्य प्रिंट करें। |
02:08 | मैंने user_function.awk नामक फाइल में पहले ही कोड लिखा है। |
02:15 | यहाँ, मैंने सिंगल argument argval के साथ changeit नामक function लिखा है। |
02:23 | यहाँ argval मूलतः हमारा छठा field है जो stipend है। |
02:29 | function में पहले कोड जाँचेगा कि argval “Zero” है या नहीं। |
02:36 | यदि हाँ तो यह शब्दों में “Zero” प्रिंट करेगा। |
02:40 | यदि नहीं, तो कोड का else भाग निष्पादित होगा। |
02:46 | else भाग में, पहले हम substring function का उपयोग करके एक-एक करके प्रत्येक अंक को एक्स्ट्रैक्ट करेंगे। |
02:54 | और हम भिन्न indices पर array a में वेल्यू संचित करेंगे। |
03:00 | उदाहरणस्वरूप, a[1] बायीं ओर से पहला digit या thousand’s place digit देगा। |
03:08 | चूँकि हमारे पास केवल चार digits हैं, मैंने चार indices का उपयोग किया है। |
03:13 | आगे, हम जाँचेंगे कि क्या elements शून्य के बराबर नहीं हैं। और उन्हें सही क्रम में प्रिंट करेंगे। |
03:21 | आखिर में, हम आउटपुट में नया line break देने के लिए backslash n कैरेक्टर प्रिंट करेंगे। |
03:28 | फिर awk script में हमने dollar 2 प्रिंट किया, जो दूसरा फिल्ड है, जोकि नाम है। |
03:35 | फिर हमने parameter dollar 6 के साथ function changeit कॉल किया, जो stipend है। फाइल को निष्पादित करें। |
03:43 | टर्मिनल पर जाएं। फिर cd command का उपयोग करके उस फोल्डर पर जाएं जिसमें आपने फाइल डाउनलोड और एक्स्ट्रैक्ट की है। |
03:53 | अब निम्न कमांड टाइप करें और एंटर दबाएं। |
04:00 | हमें अपेक्षित आउटपुट प्राप्त होता है। |
04:03 | user-defined function में return statement भी शामिल हो सकता है। |
04:08 | यह statement awk program के calling भाग में control रिटर्न करता है। |
04:13 | इसका उपयोग बाकी awk program में उपयोग हेतु वेल्यू रिटर्न करने के लिए भी किया जा सकता है। |
04:20 | यह इस तरह दिखता है return space expression. यहाँ expression भाग ऑप्शनल है। |
04:29 | अब array का average रिटर्न करने के लिए function लिखें। |
04:34 | मैंने फाइल average.awk में कोड लिखा है। कंटेंट्स देखते हैं। |
04:41 | हमने इस उद्देश्य के लिए function named avg परिभाषित किया है। |
04:46 | इसमें पाँच parameters हैं।
|
04:55 | i array loop variable है। |
04:58 | sum सभी array elements का योग है। |
05:03 | n array में elements की संख्या दर्शाता है। |
05:07 | ret function avg से रिटर्न होना वाला variable दर्शाता है।
ret गणना किए गए average को संचित करेगा। |
05:17 | i के पहले अतिरिक्त स्पेस दर्शाता है कि variables i, sum, n और ret ,local variables हैं। |
05:27 | वास्तव में, local variables arguments' होने के लिए इंटेंड नहीं हैं। |
05:32 | आपको functions परिभाषित करते समय इस रीति का अनुसरण करना चाहिए। |
05:36 | for loop में हमने array elements के योग और कुल संख्या की गणना की है। |
05:43 | हमने elements की कुल संख्या के साथ य़ोग को विभाजित करके average की गणना की है। और उस वेल्यू को variable ret में संचित किया है। |
05:54 | यह function avg() variable ret की वेल्यू रिटर्न करता है। |
06:01 | BEGIN section में हमने 5 भिन्न संख्याओं के साथ array nums को परिभाषित किया है। |
06:07 | print statement में, हमने एक argument के साथ function avg() कॉल किया, जो array name है। |
06:14 | अतः, आपको arguments के रूप में local variables को पास नहीं करना होगा। |
06:20 | टर्मिनल पर वापस जाएं। टर्मिनल साफ करें। |
06:26 | निम्न कोड कमांड टाइप करें awk space hyphen f space average dot awk एंटर दबाएं। |
06:37 | हमें आउटपुट 3.6 प्राप्त होता है। आप कैलुकुलेटर का उपयोग करके इसकी पुष्टि कर सकते हैं। |
06:44 | अब एक और उदाहरण देखते हैं। |
06:47 | मैंने string को reverse करने के लिए एक कोड लिखा है और इसे reverse.awk नाम लिखा है।
recursive function string को reverse करने के लिए उपयोगित है। |
06:57 | यहाँ विडियो रोकें और प्लो को कंट्रोल कैसे करना है यह समझने के लिए कोड देखें। फिर आउटपुट देखने के लिए इसे निष्पादित करें। |
07:07 | नियत कार्य के रूप में, awkdemo.txt file में Roll number field को reverse करने के लिए function rev का उपयोग करें। |
07:16 | उदाहरणस्वरूप, यदि रोल नम्बर A001 है, तो आउटपुट 100A होना चाहिए। |
07:24 | उसके लिए कोड Code Files में reverse_roll.awk के रूप में दिया गया है। |
07:31 | इसी के साथ हम इस ट्यूटोरियल के अंत में आ गए हैं। संक्षेप में। |
07:36 | इस ट्यूटोरियल में हमने सीखा-function definition का सिंटैक्स |
07:41 | Function call और Return statement |
07:45 | नियत कार्य के रूप में, 2D matrix का transpose बनाने के लिए function लिखें। |
07:52 | array से न्यूनतम वेल्यू element रिटर्न करने के लिए function लिखें। |
07:58 | निम्नलिखित लिंक पर मौजूद वीडियो, स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। कृपया इसे डाउनलोड करें और देखें। |
08:06 | स्पोकन ट्यूटोरियल प्रोजेक्ट टीम, स्पोकन ट्यूटोरियल्स का उपयोग करके कार्यशालाएँ आयोजित करती है और ऑनलाइन टेस्ट पास करने पर प्रमाणपत्र देती है। |
08:16 | अधिक जानकारी के लिए, कृपया हमें लिखें। |
08:20 | कृपया इस फोरम में अपनी समयबद्ध क्वेरी पोस्ट करें। |
08:24 | स्पोकन ट्यूटोरियल प्रोजेक्ट NMEICT, MHRD, भारत सरकार द्वारा वित्त पोषित है। इस मिशन पर अधिक जानकारी दिखाए गए लिंक पर उपलब्ध है। |
08:36 | यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद। |