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

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 नमस्कार, awk मधील Loops वरील ह्या स्पोकन ट्युटोरियलमध्ये आपले स्वागत आहे.
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 लूपचे सिन्टॅक्स येथे पाहता येऊ शकते.
01:22 While loop निर्दिष्ट condition ट्रू आहे का ते प्रथम तपासते.
01:27 असल्यास ते body मध्ये कोड कार्यान्वित करते.

निर्दिष्ट while condition ट्रू असेपर्यंत लूपची पुनरावृत्ती होईल.

01:37 आपण तीच awkdemo.txt फाईल वापरू, जी आपण पूर्वी वापरली होती.
01:43 मी आधीच while_loop.awk नावाची एक स्क्रिप्ट लिहिली आहे.
01:48 ह्या ट्युटोरिअलच्या Code Files लिंकमध्ये तीच फाईल उपलब्ध आहे.
01:53 येथे आपण field separator Pipe symbol म्हणून सेट केले आहे.
01:58 सुरुवातीस, आपल्याला loop variable i चे व्हॅल्यू 1 असे सेट करायचे आहे.
02:04 येथे आपण आणखी एक व्हेरिएबल f घेतला आहे आणि त्यास 1 मध्ये सुरू केले आहे.
02:10 Variable f हे प्रत्येक रेकॉर्डसाठी field counter किंवा fields च्या स्थितीचे प्रतिनिधित्व करते.
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 हे लूप awkdemo.txt फाईलमधील सर्व नोंदींसाठी कार्यान्वित केले जाईल.
02:55 याचा अर्थ प्रत्येक रेकॉर्डसाठी प्रथम 3 फील्ड्स प्रिंट केले जातील.
03:00 आता हा कोड कार्यान्वित करू.
03:03 Ctrl, Alt आणि T कीज दाबून terminal उघडा.
03:09 तुम्ही cd command वापरून Code Files डाऊनलोड आणि एक्सट्रॅक्ट केलेल्या फोल्डरवर जा.
03:16 आता टाईप करा : awk space hyphen small f space while_loop.awk space awkdemo.txt

एंटर दाबा.

03:29 लक्षात घ्या की आपल्याला आऊटपुटमधील सर्व रोजमधील पहिले तीन fields मिळतील.
03:35 हेच आपण do-while loop च्या सहाय्याने करू.
03:38 do-while loop चे सिन्टॅक्स येथे पाहिले जाऊ शकते.
03:42 do-while loop नेहमीच body मध्ये एकदा कोड कार्यान्वित करते.
03:47 मग ते निर्दिष्ट condition तपासते. आणि निर्दिष्ट condition true (ट्रू) असेपर्यंत body मध्ये कोड रिपीट करते.
03:56 मी आधीच एक स्क्रिप्ट लिहिली आहे आणि त्याला do_loop.awk म्हणून नाव दिले आहे.

Code Files लिंकमध्ये तशीच फाईल उपलब्ध आहे.

04:06 ह्या कोडमध्ये, do loop च्या आत हे statements आहेत जे आधी कार्यान्वित केले जातील.

ही condition आहे जी तपासली जाईल.

04:15 त्यानंतर, लूपमध्ये statements पुन्हापुन्हा कार्यान्वित केली जाईल जोपर्यंत कंडिशन true(ट्रू) आहे.
04:23 loop awkdemo.txt मधील सर्व नोंदींसाठी पुन्हा चालू होईल.

याचा अर्थ सर्व रेकॉर्डसाठी पहिले 3 फील्ड प्रिंट केले जातील.

04:33 terminal वर जा. मी terminal क्लिअर करते.
04:38 आता टाईप करा : awk space hyphen small f space do underscore loop dot awk space awkdemo dot txt एंटर दाबा.
04:52 आपल्याला तेच आऊटपूट मिळते. मग आपल्याकडे while आणि do-while दोन्ही लूप्स का आहेत ?
04:58 फरक समजून घेऊ.
05:00 while underscore loop dot awk फाईलवर जा.
05:05 आता, loop counter i ची व्हॅल्यू 1 वरून 4 वर बदला.
05:11 हे सुरुवातीपासून condition false निर्दिष्ट करेल.

याचा अर्थ असा की, आपल्याला कोणताही आऊटपुट मिळू नये.

05:19 फाईल सेव्ह करा आणि terminal वर जा.
05:22 terminal क्लिअर करा.

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 फाईल सेव्ह करा आणि terminal वर जा.
06:01 terminal क्लिअर करा.

do loop कार्यान्वित करण्यासाठी आपल्याला कमांड मिळत नाही तोपर्यंत अप ऍरो की दाबा. एंटर दाबा.

06:10 आऊटपुटमध्ये, प्रत्येक ओळीसाठी केवळ पहिला फील्ड प्रिंट केला आहे.

काय कारण आहे?

06:16 आता प्रत्येक ओळीसाठी, awk प्रथम पहिल्या field, मधील व्हॅल्यू प्रिंट करते, कारण variable f ची व्हॅल्यू 1 ला इनिशलाईज केली आहे.

मग condition चेक केली आहे.

06:28 ज्याअर्थी loop counter i ची व्हॅल्यू 4 आहे, त्याअर्थी condition false आहे.

म्हणून, त्या रेकॉर्डसाठी केवळ loop टर्मिनेट केला जाईल.

06:39 loop awkdemo.txt मधील सर्व रेकॉर्ड्ससाठी पुन्हा चालू होईल.
06:44 याचा अर्थ प्रत्येक रेकॉर्डसाठी पहिला field प्रिंट केला जाईल.
06:49 आपल्याला प्रत्येक रेकॉर्डसाठी कमीतकमी एकदा तरी आऊटपुट मिळत आहे.
06:53 कोणतीही condition असली तरीही कमीत कमी एकदा तरी कार्य कार्यन्वयित होण्यासाठी do-while loop वापरा.
07:01 आपण हे for loop साठीदेखील करू शकतो.
07:05 for loop चे सिन्टॅक्स येथे पाहिले जाऊ शकते.
07:09 initialization कार्यान्वित करून for statement सुरू होते.
07:14 नंतर, जोपर्यंत condition true (ट्रू) आहे, त्यामध्ये statements पुन्हापुन्हा कार्यान्वित होते आणि मग increments
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 terminal वर जा आणि येथे दाखविल्याप्रमाणे कमांड टाईप करा आणि एंटर दाबा.
09:20 आपल्याला कोणत्याही comments शिवाय आऊटपुट मिळते.
09:24 समजा, आपल्याकडे एकाच फॉर्मेटमध्ये अनेक फाईल्समधील विद्यार्थ्यांचा रेकॉर्ड आहे.

awkdemo_mod.txt आणि awkdemo2.txt

09:37 पहा, ही आपल्या मागील फाईल सारखीच आहे.
09:41 hash चिन्हाच्या आधी कमेंट्सदेखील आहेत.
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 within braces nextfile semicolon मध्ये जोडली आहे.
10:29 प्रत्येक ओळीच्या सुरूवातीस हे डबल hash # चिह्न शोधेल.
10:34 आढळल्यास, awk पुढील फाईलवर प्रक्रिया करण्यासाठी वर्तमान फाईल वगळेल.
10:39 ही फाईल सेव्ह करा.
10:41 terminal वर जा आणि खालील कमांड टाईप करा. एंटर दाबा.
10:48 पहा, दोन्ही फाईल्समधून आपल्याला आऊटपुट मिळत आहे.
10:53 आपण ह्या ट्युटोरिअलच्या अंतिम टप्प्यात पोहोचलो आहोत.

थोडक्यात.

10:58 ह्या ट्युटोरिअलमध्ये आपण शिकलो - awk मधील while, do… while, for, next, nextfile
11:06 असाईनमेंट म्हणून, awkdemo2.txt च्या विद्यार्थ्यांच्या रेकॉर्ड्ससाठी, input file मध्ये किती fields आहेत त्याकडे दुर्लक्ष करून फक्त fields (म्हणजेच. field 2, field 4 इत्यादी) प्रिंट करा.
11:22 खालील लिंकवरील व्हिडिओ 'स्पोकन ट्युटोरियल' प्रोजेक्टचा सारांश देते. कृपया ते डाऊनलोड करून पहा.
11:30 स्पोकन ट्युटोरिलच्या सहाय्याने कार्यशाळा चालविते.

परीक्षा उत्तीर्ण होणाऱ्या विद्यार्थ्यांना प्रमाणपत्रही दिले जाते. अधिक माहितीसाठी कृपया आम्हांला लिहा.

11:43 ह्या Spoken Tutorial संदर्भात तुम्हांला काही प्रश्न आहेत का?

कृपया ह्या साईटला भेट द्या.

11:49 "स्पोकन ट्युटोरियल प्रॉजेक्ट" ला अर्थसहाय्य National Mission on Education through ICT, MHRD, Government of India यांच्याकडून मिळालेले आहे.

ह्या मिशनवरील अधिक माहिती ह्या लिंकवर उपलब्ध आहे.

12:01 आय.आय.टी. बॉम्बे तर्फे मी रंजना उके आपली रजा घेते. सहभागासाठी धन्यवाद.

Contributors and Content Editors

Ranjana