Linux-AWK/C2/Loops-in-awk/Hindi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 नमस्कार Loops in awk पर स्पोकन ट्यूटोरियल में आपका स्वागत है।
00:06 इस ट्यूटोरियल में हम awk' में while, do-while, for और अधिक looping constructs के बारे में सीखेंगे।
00:16 हम यह कुछ उदाहरणों के माध्यम से सीखेंगे।
00:20 इस ट्यूटोरियल के रिकॉर्ड करने के लिए, मैं उपयोग कर रही हूँ

Ubuntu Linux 16.04 Operating System और gedit text editor 3.20.1

00:32 आप अपनी पसंद के किसी भी टेक्स्ट एडिटर का उपयोग कर सकते हैं।
00:36 इस ट्यूटोरियल का अभ्यास करने के लिए आपको हमारी वेबसाइट पर पिछले awk ट्यूटोरियल्स को देखना चाहिए।
00:43 आपको किसी भी प्रोग्रामिंग भाषा जैसे C या C++ के साथ परिचित होना चाहिए।
00:50 यदि नहीं, तो कृपया हमारी वेबसाइट पर समरूपी ट्यूटोरियल्स देखें।
00:56 इस ट्यूटोरियल में उपयोगित फाइल्स इस ट्यूटोरियल के पेज पर Code Files लिंक में उपलब्ध हैं। कृपया उन्हें डाउनलोड और एक्स्ट्रैक्ट करें।
01:06 loop हमें एक या अधिक कार्य बारबार करने की अनुमति देता है।
01:12 while, do-while और for awk में उपलब्ध loops हैं।
01:18 while loop का सिंटैक्स यहाँ देखा जा सकता है।
01:22 While loop पहली जाँचता है कि क्या निर्दिष्ट condition' ट्रू है।
01:27 यदि हाँ, तो यह कोड को body में निष्पादित करता है। यह loop दोहराया जायेगा जब तक निर्दिष्ट while condition ट्रू है।
01:37 हम उसी awkdemo.txt फाइल का उपयोग करेंगे, जिसे हमने पहले सेव किया था।
01:43 मैंने while_loop.awk नामक स्क्रिप्ट पहले ही लिखी है।
01:48 वही फाइल इस ट्यूटोरियल के Code Files लिंक में उपलब्ध है।
01:53 यहाँ हमने Pipe symbol के रूप में field separator सेट किया है।
01:58 आरंभ में, हमें loop variable i की वेल्यू 1 सेट करनी होगी।
02:04 यहाँ हमने एक और वेरिएबल f लिया है इसे 1 से शुरू किया है।
02:10 Variable f प्रत्येक रिकॉर्ड के लिए field counter या फिल्ड्स की पोजीशन का प्रतिनिधित्व करता है।
02:17 अब while condition में, हम जाँचते हैं कि i 3 से कम या बराबर है।
02:23 यदि हाँ, तो यह 'awkdemo.txt फाइल में उस रिकॉर्ड के लिए fth फिल्ड में वेल्यू प्रिंट करेगा।
02:31 फिर हम field counter f को 1 बढ़ायेंगे।
02:36 उसके बाद, हम loop variable i की वेल्यू को भी 1 बढ़ायेंगे।
02:43 यह printf प्रत्येक रो के अंत में newline character प्रिंट करने के लिए है।
02:49 यह loop awkdemo.txt फाइल में सभी रिकॉर्ड के लिए निष्पादित होगा।
02:55 जिसका अर्थ है कि पहले 3 फिल्ड्स सभी रिकॉर्ड के लिए प्रिंट होंगे।
03:00 अब इस कोड को निष्पादित करते हैं।
03:03 Ctrl, Alt और T कीज दबाकर टर्मिनल खोलें।
03:09 cd कमांड का उपयोग करके उस फोल्डर पर जिसमें आपने Code Files डाउनलोड और एक्स्ट्रैक्ट की है।
03:16 अब टाइप करें: awk space hyphen small f space while_loop.awk space awkdemo.txt

एंटर दबाएं।

03:29 ध्यान दें कि हमें आउटपुट में सभी रोज़ के पहले तीन फिल्ड्स प्राप्त होते हैं।
03:35 ऐसा ही do-while loop के साथ करें।
03:38 do-while loop का सिंटैक्स यहाँ देखा जा सकता है।
03:42 do-while loop हमेशा एक बार body में कोड को निष्पादित करता है।
03:47 फिर यह निर्दिष्ट condition जाँचता है। और जब तक निर्दिष्ट condition ट्रू होती है, कोड को body में दोहराता है।
03:56 मैंने पहले ही एक स्क्रिप्ट लिखी है और इसे do_loop.awk नाम दिया है।

समान फाइल Code Files लिंक में उपलब्ध है।

04:06 इस कोड में, ये do loop में statements हैं जो पहले निष्पादित होंगे। यह condition है जो जाँची जायेगी।
04:15 उसके बाद, loop में statements बार बार निष्पादित होगी, जब तक condition ट्रू है।
04:23 यह loop awkdemo.txt फाइल में सभी रिकॉर्ड्स के लिए पुनरावृत होगा, जिसका अर्थ है सभी रिकॉर्ड्स के लिए पहले 3 फिल्ड्स प्रिंट होंगे।
04:33 टर्मिनल पर जाएं। टर्मिनल साफ करें।
04:38 अब टाइप करें: awk space hyphen small f space do underscore loop dot awk space awkdemo dot txt

एंटर दबाएं।

04:52 हमें समान आउटपुट मिलता है। फिर हमारे पास दोनों while और do-while loops क्यों हैं?
04:58 अंतर समझते हैं।
05:00 फाइल while underscore loop dot awk पर जाएं।
05:05 अब, loop counter i की वेल्यू 1 से 4 करें।
05:11 यह शुरूआत से निर्दिष्ट condition false दर्शाता है। जिसका अर्थ है हमें कोई भी आउटपुट नहीं मिलना चाहिए।
05:19 फाइल सेव करें और टर्मिनल पर जाएं।
05:22 टर्मिनल साफ करें।

अब अप ऐरो की को तब तक दबाएं, जब तक आपको while loop निष्पादित करने के लिए कमांड न मिल जाए।

05:30 अब एंटर दबाएं।
05:32 देखें, हमें खाली लाइन्स के अलावा कोई आउटपुट नहीं मिल रहा है।
05:37 awkdemo.txt फाइल में प्रत्येक रिकॉर्ड के लिए, आउटपुट में खाली लाइन्स प्रिंट हो रही हैं।
05:44 अब, do loop फाइल में कुछ बदलाव करते हैं।
05:48 फाइल do underscore loop dot awk पर जाएं।
05:53 i की वेल्यू 1 से 4 करें।
05:57 फाइल सेव करें और टर्मिनल पर जाएं।
06:01 टर्मिनल साफ करें। अप ऐरो की दबाएं जब तक आपको do loop के लिए कमांड न मिल जाय। एंटर दबाएं।
06:10 आउटपुट में, पहले रो के लिए केवल पहला फिल्ड प्रिंट होता है। क्या कारण है?
06:16 प्रत्येक रो के लिए awk पहले फिल्ड में वेल्यू प्रिंट करता है, क्योंकि variable f की वेल्यू 1 से इनीशिलाइज की जाती है फिर condition की जाँच की जाती है।
06:28 चूँकि loop counter i की वेल्यू 4 है, तो condition false है। इसलिए loop उस रिकॉर्ड के लिए वहीं समाप्त हो जाता है।
06:39 यह loop awkdemo.txt फाइल में सभी रिकॉर्ड्स के लिए पुनरावृत होगा।
06:44 जिसका अर्थ है प्रत्येक रिकॉर्ड के लिए पहला फिल्ड प्रिंट होगा।
06:49 हमें प्रत्येक रिकॉर्ड के लिए कम से कम एक बार आउटपुट प्राप्त हो रहा है।
06:53 किसी अन्य condition के बावजूद कम-से-कम एक बार निष्पादित होने वाले कार्य के लिए do-while loop का उपयोग करें।
07:01 हम यह for loop के साथ भी कर सकते हैं।
07:05 for loop के लिए सिंटैक्स यहाँ देखा जा सकता है।
07:09 for statement initialization निष्पादन द्वारा शुरू होता है।
07:14 फिर जब तक condition ट्रू है, तब तक वह बार-बार statements को निष्पादित करता है और फिर वृद्धि करता है।
07:23 C या C++ जैसी भाषा के साथ आपको परिचित समझ कर मैं सिंटैक्स को विस्तार में नहीं समझा रही हूँ।
07:30 इस condition के लिए for loop इस तरह दिखता है।
07:35 यहाँ initialization, condition की जाँच और वेरिएबल वृद्धि समान लाइन में होती हैं।
07:43 स्वतः इसका अभ्यास करें।
07:46 यहाँ कुछ और looping constructs हैं।

break, continue, exit

07:53 हम इन पर कुछ संबंधित उदाहरण आगे के ट्यूटोरियल्स में देखेंगे।
07:58 हमारे पास हमारी फाइल में सिंगल और मल्टिलाइन 'comments हो सकते हैं।
08:03 यहाँ ध्यान दें कि सिंगल लाइन comments' सिंगल hash (#) ' सिंबल के साथ घोषित होते हैं।
08:10 मल्टिलाइन comments डबल hash (##) सिंबल की मदद से घोषित होते हैं।
08:16 अब, आउटपुट में इन comments को जाँचने और प्रिंट करने का कोई मतलब नहीं है।
08:22 हमें hash (##) सिंबल से शुरूआत होने वाली लाइन को छोड़ना होगा।

हम यह कैसे कर सकते हैं?

08:28 8000 रूपये से अधिक पाने वालों के लिए स्टाइपेंड में 50% वृद्धि देने के मामले को याद करें।
08:36 हम comments को छोड़ने के लिए उसी उदाहरण का उपयोग करेंगे।
08:40 मैंने इस निष्पादन के लिए next.awk नामक फाइल बनाई है जैसा कि यहाँ दिखाया गया है।
08:47 अब, इस कमांड का अर्थ क्या है?
08:50 awk पैटर्न के लिए खोजेगा, जिसकी प्रत्येक लाइन की शुरूआत में caret sign hash symbol(^#) होगा।
08:57 यदि पैटर्न मिलता है, तो कीवर्ड next awk को तुरंत वर्तमान लाइन को छोड़ने के लिए कहता है।
09:04 फिर awk फ़ाइल में अगली पंक्ति से प्रसंस्करण शुरू कर देगा। यह प्रसंस्करण का समय बचाएगा।
09:12 टर्मिनल पर जाएं और यहाँ दिखाए गए अनुसार कमांड टाइप करें और एंटर दबाएं।
09:20 हमें बिना किसी comments के आउटपुट मिलता है।
09:24 मान लीजिए, हमारे पास छात्रों के रिकॉर्ड समान फॉर्मेट में कई फाइल्स में हैं। जैसे awkdemo_mod.txt और awkdemo2.txt
09:37 देखें, यह हमारी पिछली फाइल के समान है।
09:41 इसमें hash सिंबल के आगे होने के साथ comments भी हैं।
09:45 और इसमें अंत में डबल hash # # सिंबल के साथ काफी टेक्स्ट है।
09:50 अतः हमारा डेटा दो भिन्न फाइल्स में है।

awk को सभी छात्रों को एक वृद्धि देने के लिए दोनों फाइल्स को प्रोसेस करना चाहिए।

09:59 एक बार जब हम पहली फाइल के डबल hash(##) सिंबल पर पहुँच जाते हैं, तो awk को उस फाइल को पूर्ण रूप से प्रोसेस करना बंद कर देना चाहिए।
10:06 तो इसे अगली फ़ाइल से निष्पादन शुरू करना होगा।

यह प्रोसेस का समय बचाएगा।

10:13 यहाँ दिखाए गए अनुसार next.awk को संशोधित करें।
10:17 मैंने begin statement के नीचे dollar zero tilde slash caret symbol double hash slash braces में nextfile semicolon जोड़ा है।
10:29 यह प्रत्येक लाइन की शुरूआत में डबल hash # सिंबल खोजेगा।
10:34 यदि मिलता है, तो awk अगली फाइल को प्रोसेस करने के लिए वर्तमान फाइल को छोड़ता है।
10:39 इस फाइल को सेव करें।
10:41 टर्मिनल पर जाएं और निम्न कमांड टाइप करें। एंटर दबाएं।
10:48 देखें, हमें दोनों फाइल्स से आउटपुट प्राप्त हो रहा है।
10:53 इसी के साथ हम इस ट्यूटोरियल के अंत में आ गए हैं। संक्षेप में ।
10:58 इस ट्यूटोरियल में हमने awk में while, do… while, for, next, nextfile के बारे में सीखा।
11:06 नियत-कार्य के रूप में, awkdemo2.txt के छात्रों के रिकॉर्ड्स के लिए केवल सम फिल्ड्स प्रिंट करें ( यानि फिल्ड 2, फिल्ड 4 आदि) भले ही यहाँ इनपुट फाइल में कितने भी फिल्ड्स हों।
11:22 निम्नलिखित लिंक पर मौजूद वीडियो, स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। कृपया इसे डाउनलोड करें और देखें।
11:30 स्पोकन ट्यूटोरियल प्रोजेक्ट टीम, स्पोकन ट्यूटोरियल्स का उपयोग करके कार्यशालाएँ आयोजित करती है और ऑनलाइन टेस्ट पास करने पर प्रमाणपत्र देती है। अधिक जानकारी के लिए, कृपया हमें लिखें।
11:43 क्या इस स्पोकन ट्यूटोरियल में आपको कोई प्रश्न है? कृपया इस साइट पर जाएं।
11:49 स्पोकन ट्यूटोरियल प्रोजेक्ट NMEICT, MHRD, भारत सरकार द्वारा वित्त पोषित है। इस मिशन पर अधिक जानकारी दिखाए गए लिंक पर उपलब्ध है।
12:01 यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद।

Contributors and Content Editors

Sakinashaikh