Linux-AWK/C2/Loops-in-awk/Hindi
From Script | Spoken-Tutorial
|
|
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 | यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद। |