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

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 ओपरेटिङ् सिस्टम् अपि च

gedit टेक्श्ट् एडिटर् 3.20.1 इतीमे उपयुनज्मि ।

00:32 भवतामभीष्टानुसारेण यत्किमपि टेक्स्ट् एडिटर् उपयोक्तुमर्हन्ति भवन्तः ।
00:36 पाठस्यास्य अभ्यासाय , भवन्तः अस्माकं जालपुटस्थं पूर्वतन awk ट्युटोरियल्स् पश्येयुः ।
00:43 भवद्भ्यः, C अथवा C++ सदृशानां प्रोग्रामिङ्ग्-भाषाणां ज्ञानमावश्यकम् ।
00:50 न चेत्, कृपया अस्माकं जालपुटे तत्सम्बद्धपाठान् अवलोकयन्तु ।
00:56 अस्मिन् ट्युटोरियल् मध्ये उपयुक्ताः सञ्चिकाः , अस्मिन्नेव पुटे Code Files लिङ्क्-मध्ये उपलभ्यन्ते ।

कृपया ताः अवचित्य एक्स्ट्रेक्ट् (extract) कुर्वन्तु ।

01:06 एकां अथवा तदधिकाः क्रियाः पुनः पुनः कर्तुं , 'लूप्' अस्माकम् अनुमतिं ददाति ।
01:12 while, do-while अपि च for इत्येतानि awk मध्ये उपलभ्यमानानि लूप्स् सन्ति ।
01:18 while लूप् इत्यस्य सिण्टेक्स् भवन्तः दृष्टुं शक्नुवन्ति ।
01:22 While लूप्, उक्तं कण्डीशन् true अस्ति वा इति आदौ परीक्षते ।
01:27 सत्यञ्चेत् तत्, body मध्यस्थानि कोड्स् एक्सियूट् करोति ।

उक्तं while कण्डीशन् true यावत् भविष्यति तावत् 'लूप्' पुनरावर्तते ।

01:37 वयम्, आदौ उपयुक्ताम् awkdemo.txt सञ्चिकामेव पुनः उपयुञ्ज्महे ।
01:43 अहं तावदेव while_loop.awk इति नाम्नः स्क्रिप्ट् लिखितवान् अस्मि ।
01:48 इयमेव सञ्चिका, अस्मिन् ट्युटोरियल् मध्ये Code Files पर्चन्याम् उपलभ्यते ।
01:53 अत्र वयं Pipe चिह्नं, 'फील्ड् सपरेटर्' इति सेट् कृतवन्तः ।
01:58 वयमादौ, 'लूप् वेरियेबल् i' इत्यस्य मूल्यं 1 इति सेट् कुर्मः ।
02:04 अत्र वयम्, अन्यमेकं वेरियेबल् f इतीदं गृहीत्वा, तं 1 इत्यस्मै इनिशियलैस् कृतवन्तः ।
02:10 वेरियेबल् f, प्रत्येकाय रेकोर्ड् इत्यस्मै, 'फील्ड् कौण्टर्' अथवा फील्ड्-स्थानं सूचयति ।
02:17 वयमधुना, while कण्डीशन् मध्ये, i इतीदं 3 इत्यस्मात् न्यूनमस्ति वा सममस्ति वा इति परीक्षामहे ।
02:23 सत्यञ्चेत् , तत् रेकोर्ड् इत्यस्मै awkdemo.txt सञ्चिकायां fth फील्ड् मध्यस्थं मूल्यं मुद्रापयति ।
02:31 पश्चाद्वयं, वयं 'फील्ड् कौण्टर् f ' इतीदं 1 इत्यनेन वर्धयामः ।
02:36 पश्चाद्वयं, 'लूप् वेरियेबल् i 'इत्यस्य मूल्यमपि 1 इत्यनेन वर्धयामः ।
02:43 इदं printf, प्रत्येकस्याः पङ्क्त्याः अन्ते newline character इतीदं मुद्रापयति ।
02:49 awkdemo.txt सञ्चिकास्थेभ्यः सर्वेभ्यः रेकोर्ड् इत्येतेभ्यः, इदं 'लूप्' एक्सिक्यूट् क्रियते ।
02:55 अर्थात्, प्रत्येकस्य रेकोर्ड् इत्यस्य आदिमानि 3 फील्ड्स् मुद्राप्यन्ते ।
03:00 अधुना इदं कोड् एक्सिक्यूट् कुर्मः ।
03:03 CTRL, ALT अपि च T कीलकानि नुत्वा 'टर्मिनल्' उद्घाटयन्तु ।
03:09 cd कमाण्द् उपयुज्य, Code Files इतीदं डौन्लोड् कृत्वा, एक्स्ट्रेक्ट् (extract) कृतं फोल्डर् प्रति गच्छन्तु ।
03:16 अधुना एवं टङ्कयन्तु : awk space hyphen small f space while_loop.awk space awkdemo.txt

Enter नुदन्तु ।

03:29 पश्यतां यत् औट्पुट् मध्ये, सर्वासां पङ्क्तीनां त्रीणि फील्ड्स् सन्ति ।
03:35 do-while लूप् इत्यनेन सह वयमिदमेव कुरवाम ।
03:38 do-while लूप् इत्यस्य सिण्टेक्स् अत्र दृश्यते ।
03:42 do-while लूप्, सर्वदा body इत्यस्यान्तः विद्यमानं कोड् एकदा एक्सिक्यूट् करोति ।
03:47 पश्चात् तत् निर्दिष्टं कण्डीशन् परीक्षते । इदं कण्डीशन्, true वर्तमाने सति body अन्तस्थं कोड् पुनरावर्तते ।
03:56 एतावदेवाहं स्क्रिप्ट् लिखित्वा तस्मै do_loop.awk इति नाम दत्त्वानस्मि ।

इयमेव सञ्चिका Code Files लिङ्क् मध्ये उपलभ्यते ।

04:06 अस्मिन् कोड् मध्ये, इमानि do लूप् इत्यस्यान्तः वर्तमानानि स्टेट्मेण्ट्स् सन्ति । इमानि आदौ एक्सिक्यूट् जायन्ते । इदं परीक्ष्यमाण-कण्डीशन् वर्तते ।
04:15 पश्चात्, कण्डीशन् यावत् true वर्तते तावत्, लूप् अन्तः स्टेट्मेण्ट्स् पुनः पुनः एक्सिक्यूट् जायते ।
04:23 इदं लूप्, awkdemo.txt सञ्चिकायाः सर्वेभ्यः रेकोर्ड् इत्येतेभ्यः पुनरावर्तते ।

अर्थात्, सर्वेभ्यः रेकोर्ड् इत्येतेभ्यः , आदिमानि त्रीणि फील्ड्स् मुद्राप्यन्ते ।

04:33 टर्मिनल् आगच्छामि अपि च तत् रिक्तं करोमि ।
04:38 अधुना एवं टङ्कयन्तु  : awk space hyphen small f space do underscore loop dot awk space awkdemo dot txt.

Enter नुदन्तु ।

04:52 वयं तदेव फलितं प्राप्नुमः । तथापि, while अपि च do-while इति किमर्थं द्वे लूप्स् वर्तेते ?
04:58 भेदान् वयं ज्ञास्यामः ।
05:00 while underscore loop dot awk सञ्चिकाम् आगच्छन्तु ।
05:05 अधुना, 'लूप् कौण्टर् i ' इत्यस्य मूल्यं 1 तः 4 इत्यस्मै परिवर्तताम् ।
05:11 इदं सूचितं कण्दीशन् इतीदं, आदिमादारभ्य false करोति ।

अस्यार्थः, अस्माभिः किमपि फलितं न लभेत् ।

05:19 सञ्चिकां रक्षित्वा टर्मिनल् प्रति आगच्छन्तु ।
05:22 टर्मिनल् रिक्तं करोमि ।

अधुना, while लूप् एक्सिक्यूट् कर्तुं युष्माभिः यावत् कमाण्ड् न लभ्यते तावत्, अप् एरो (up arrow) कीलकं नुदत ।

05:30 अधुना Enter नुदन्तु ।
05:32 पश्यताम्, रिक्ताः पङ्क्तीः हित्वा अस्माभिः किमपि फलितं न प्राप्यते ।
05:37 awkdemo.txt सञ्चिकायाः प्रत्येकस्मै रेकोर्ड् इत्यस्मै , फलिते रिक्त-पङ्क्तयः मुद्राप्यते ।
05:44 अधुना, do लूप् सञ्चिकायां कानिचन परिवर्तनानि कुर्मः ।
05:48 do underscore loop dot awk सञ्चिकायै परिवर्तताम् ।
05:53 i’ मूल्यं 1 तः 4 इत्यस्मै परिवर्तयन्तु ।
05:57 सञ्चिकां रक्षित्वा टर्मिनल् आगच्छन्तु ।
06:01 टर्मिनल् रिक्तं कुर्वन्तु ।

अधुना, do लूप् इत्यस्मै कमाण्ड् यावत् प्राप्यते तावत्, अप्-एरो (up arrow) कीलकं नुत्वा Enter नुदन्तु ।

06:10 फलिते, प्रत्येकपङ्क्त्याः प्रथमं फील्ड् इतीदं मुद्रापितम् । अस्य किं कारणम् ?
06:16 आदौ, प्रत्येक-पङ्क्त्यै awk प्रथम-फील्ड्-मूल्यं मुद्रापयति । यतो हि वेरियेबल् f इत्यस्य मूल्यं '1' तः आरभ्यते । पश्चात् कण्डीशन् परीक्ष्यते ।
06:28 'लूप् कौण्टर् i' इत्यस्य मूल्यं 4 अस्तीत्यतः, कण्डीशन् अत्र false जातम् ।

अतः, 'लूप्' इतीदं तस्मै रेकोर्ड्-इत्यस्मै तत्रैव समाप्यते ।

06:39 इदं लूप्, awkdemo.txt सञ्चिकायाः सर्वेभ्यः रेकोर्ड् इत्येतेभ्यः पुनरावर्तते ।
06:44 नाम, प्रत्येकस्मै रेकोर्ड्-इत्यस्मै, प्रथमं-फील्ड्, मुद्राप्यते ।
06:49 प्रत्येकस्मै रेकोर्ड्-इत्यस्मै, कनिष्ठपक्षतः एकवारं फलितं प्राप्यते ।
06:53 अन्यं यत्किमपि कण्डीशन् अगणय्य, एकवारं एक्सिक्यूट् भवितुं do-while उपयुज्यताम् ।
07:01 for लूप् इत्यनेन सहापि इदं कर्तुं शक्यते ।
07:05 for लूप् सिण्टेक्स् अत्र दृश्यते ।
07:09 initialization एक्सिक्यूट् करणेन सह, for स्टेट्मेण्ट् आरभ्यते ।
07:14 कण्डीशन् true यावद्भविष्यति तावत्, तत् अन्तस्थं स्टेट्मेण्ट् इतीदं एक्सिक्यूट् करोति । पश्चात् इन्क्रिमेण्ट् जायते । एवं लूप् पुनरावर्तते ।
07:23 भवद्भ्यः C अथवा C++ सदृशानां प्रोग्रामिङ्ग्-भाषाणां ज्ञानमस्तीति भावनया सिण्टेक्स् अधिकं न विवृतम् ।
07:30 कण्डीशन् इत्यस्मै, for लूप् एवं दृश्यते ।
07:35 अत्र, इनिशियलैसेशन् , कण्डीशन्-परीक्षा, वेरियेबल्-वर्धनं च एकस्मिन्नेव पङ्क्तौ क्रियते ।
07:43 भवन्तः एव परीक्षां कुर्वन्तु ।
07:46 break, continue, exit इत्यादीनि कानिचन ‘लूपिङ्ग् कन्स्ट्रक्ट्स्’ (looping constructs) सन्ति ।
07:53 एतस्मै सम्बद्धानि उदाहरणानि वयं आगामि पाठेषु दृक्ष्यामः ।
07:58 अस्माकं सञ्चिकायां, एकपङ्क्तियुतं अनेकपङ्क्तियुतञ्च कोमेण्ट्स् प्राप्नुयाम ।
08:03 अत्र, एकपङ्क्तियुतानि कोमेण्ट्स् इतीमानि, एकेन हेश्-चिह्नेन (#) डिक्लेर् कृतानीति अवलोकयन्तु ।
08:10 अनेकपङ्क्तियुतानि कोमेण्ट्स् इतीमानि, डबल् हेश् (##) चिह्नेन सह डिक्लेर् क्रियन्ते ।
08:16 अधुना, इमानि कोमेण्ट्स् परीक्ष्य, फलिते मुद्रापणेन किमपि अर्थं नास्ति ।
08:22 वयं 'हेश्' (##) चिह्नेन आरभमाणाः पङ्क्तीः त्यजेम ।

वयमिदं कथं कुर्मः?

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

सर्वेभ्यः विद्यार्थिभ्यः इन्क्रिमेण्ट् दातुं , awk द्वेऽपि सञ्चिके प्रोसेस् कुर्यात् ।

09:59 वयं प्रथम-सञ्चिकायाः 'द्वे हेश्' (##) चिह्नं यदा प्राप्नुमः तदा, awk तस्याः सञ्चिकायाः प्रोसेस् करणं निवारयेत् ।
10:06 पश्चात् तत् अग्रिमायाः सञ्चिकायाः एक्सिक्यूट्-करणं प्रारभेत् ।

इदं प्रोसेस्-समयं रक्षति ।

10:13 next.awk इतीदमत्र यथा दर्शितं तथा परिवर्तयन्तु ।
10:17 BEGIN स्टेट्मेण्ट् इत्यस्याधः अहं dollar zero tilde slash caret symbol double hash slash within braces nextfile semicolon इति संयोजितवानस्मि ।
10:29 इदं, प्रत्येकस्याः पङ्क्त्याः प्रारम्भे, 'डबल् हेश्' (#) चिह्नाय शोधं करोति ।
10:34 मिलिष्यति चेत्, awkअग्रिमां सञ्चिकां प्रोसेस् कर्तुं , प्रस्तुतां सञ्चिकां त्यजति ।
10:39 इमां सञ्चिकां रक्षन्तु ।
10:41 'टर्मिनल्' आगत्य कमाण्ड् टङ्कयन्तु ।

Enter नुदन्तु ।

10:48 पश्यताम् यत् , वयं द्वाभ्यामपि सञ्चिकाभ्यां फलितं प्राप्नुमः ।
10:53 अनेन वयं पाठस्यान्तमागतवन्तः ।

सङ्क्षेपेण,

10:58 पाठेऽस्मिन् वयं , awk मध्ये :

while, do… while, for, next, nextfile इत्येतान् ज्ञातवन्तः ।

11:06 एकं पाठनियोजनम् -

awkdemo2.txt मध्ये, विद्यार्थिनां रेकोर्ड् इत्यस्मै, 'इन्पुट् सञ्चिकायां' कति फील्ड्श् सन्ति इति ज्ञानं विना, समफील्ड्स्, नाम फील्ड् 2, फील्ड् 4 इत्यादीनि मुद्रापयन्तु ।

11:22 पर्चन्याम् विद्यमानं विडियो, “spoken tutorial” प्रकल्पस्य सारं दर्शयति । तदवचित्य पश्यन्तु ।
11:30 “spoken tutorial” प्रकल्पगणः, इमान् पाठान् उपयुज्य कार्यशालां चालयति । उत्तीर्णेभ्यः प्रमाणपत्रं ददाति । अधिकविवरणार्थम् अस्मभ्यं लिखन्तु ।
11:43 अस्मिन् 'स्पोकन् ट्युटोरियल्' मध्ये प्रश्नाः सन्ति वा?

कृपया जालपुटमिदं पश्यन्तु

11:49 "Spoken Tutorial" प्रकल्पः, NMEICT, MHRD द्वारा भारतसर्वकारस्य अनुदानं प्राप्तवान् अस्ति । अधिकविवरणं अस्यां पर्चन्याम् उपलभ्यते ।
12:01 पाठस्यास्य अनुवादकः प्रवाचकश्च श्री नवीनभट्टः उप्पिनपट्टणम् । धन्यवादाः ।

Contributors and Content Editors

NaveenBhat, Sandhya.np14