Linux-AWK/C2/User-Defined-Functions-in-awk/Hindi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
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 हैं।


arr array है, जिसके लिए average की गणना होनी है।

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 यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद।

Contributors and Content Editors

Sakinashaikh