Linux-AWK/C2/MultiDimensional-Array-in-awk/Marathi

From Script | Spoken-Tutorial
Revision as of 23:40, 19 February 2019 by Ranjana (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 awk मध्ये multidimensional arrays तयार करण्याच्या स्पोकन ट्युटोरियलमध्ये आपले स्वागत आहे.
00:07 या ट्युटोरिअलमध्ये आपण शिकणार आहोत- awk मध्ये multidimensional array तयार करणे आणि multidimensional array स्कॅन करणे.
00:18 आपण हे काही उदाहरणांद्वारे करू.
00:21 हे ट्युटोरिअल रेकॉर्ड करण्यासाठी, मी वापरत आहे Ubuntu Linux 16.04 Operating System आणि gedit text editor 3.20.1
00:33 तुम्ही तुमच्या पसंतीचा कोणताही टेक्स्ट एडिटर वापरू शकता.
00:37 या ट्युटोरियलचा अभ्यास करण्यासाठी, तुम्ही आपल्या वेबसाईटवरील पूर्वीचे awk ट्युटोरिअल्स पहा.
00:45 तुम्हाला C किंवा C++ सारखे कोणत्याही सामान्य प्रोग्रामिंग लँग्वेजचे काही मूलभूत ज्ञान असावे.
00:52 नसल्यास, कृपया आपल्या वेबसाईटवरील संबंधित ट्युटोरिअल्स पहा.
00:58 या ट्युटोरियलमध्ये वापरल्या गेलेल्या फाईल्स या ट्यूटोरियल पेजवरील Code Files लिंकमध्ये उपलब्ध आहेत. कृपया ते डाउनलोड करून एक्सट्रॅक्ट करा.
01:08 awk मध्ये multidimensional array म्हणजे काय?
01:12 आपल्याला माहित आहे कि single dimensional arrays मध्ये array element एका एकल index द्वारे ओळखले जाते.
01:19 उदाहरणार्थ, array week हे एकल index, day द्वारे ओळखला जातो.
01:26 मात्र, multidimensional array मध्ये, element एकाधिक indices च्या क्रमाने ओळखला जातो.
01:34 उदाहरणार्थ, two dimensional array element , 2 indices च्या क्रमाने ओळखला जातो.
01:42 येथे, multiple indices separator सह त्यांच्या दरम्यान एकल string मध्ये एकत्रित केले जातात.
01:50 separator हे built-in variable SUBSEP चे व्हॅल्यू आहे.
01:55 एकत्रित string एकल index म्हणून वापरले जाण्यासाठी one dimensional array वापरले जाते.
02:01 उदाहरणार्थ, समजा आपण multi स्क्वेअर ब्रॅकेट्समध्ये 4 कॉमा 6 equal to डबल कोट्समध्ये value लिहा.
02:11 येथे multi हे multi-dimensional array चे नाव आहे.

नंतर, संख्या 4 आणि 6 स्ट्रिंगमध्ये रूपांतरित केले जातात.

02:21 समजा, SUBSEP चे व्हॅल्यू hash symbol (#) आहे.
02:26 नंतर, ह्या संख्या त्यांच्या दरम्यान hash symbol (#) सह एकत्रित केली जाते.
02:32 तर, array element multi स्क्वेअर ब्रॅकेट्समध्ये डबल कोट्समध्ये 4 hash 6 हे डबल कोट्समध्ये value सेट केले आहे.
02:43 SUBSEP चे डीफॉल्ट व्हॅल्यू string आहे डबलस् कोट्समध्ये बॅकस्लॅश "\034
02:50 हे प्रत्येक्षात एक nonprinting character आहे.

बहुतांश इनपुट डेटामध्ये ते सामान्यतः दिसणार नाही.

02:58 स्लाईडमध्ये दर्शविल्याप्रमाणे आपण two dimensional array घोषित करण्याचा प्रयत्न करू या.
03:03 Row 1 मध्ये दोन elements A आणि B असतात.
03:08 Row 2 मध्ये two elements C आणि D असतात.
03:12 Ctrl, Alt आणि T कीज दाबून टर्मिनल उघडा.
03:17 त्या फोल्डर वर जा जेथे तुम्ही 'cd कमांड' वापरून Code Files डाउनलोड करून एक्सट्रॅक्ट केलेल्या आहेत.
03:24 आता खालील array परिभाषित करा. येथे दर्शविल्याप्रमाणे काळजीपूर्वक कमांड टाइप करा.

नंतर Enter दाबा.

03:35 आपल्याला कोणत्याही error शिवाय command prompt परत मिळतो.

तर, array परिभाषित केले आहे.

03:41 आपल्याला कोणताही आउटपुट मिळत नाही कारण आपण कोडमध्ये प्रिंट करण्यासाठी काहीही दिले नाही.
03:47 आता आपण print statement जोडू.
03:50 टर्मिनल मधील पूर्वी कार्यान्वित केलेली कमांड मिळविण्यासाठी अप अॅरो की दाबा.
03:56 क्लोजिंग curly bracket च्या आधी, टाईप करा semicolon स्पेस print स्पेस a स्क्वेअर ब्रॅकेट्समध्ये 2 कॉमा 2 .

कमांड कार्यान्वित करण्यासाठी Enter दाबा.

04:13 लक्ष द्या, आपल्याला आउटपुट capital D म्हणून मिळते.
04:18 एखाद्या विशिष्ट index sequence दिलेल्या multidimensional array मध्ये विद्यमान आहे की नाही हे कसे तपासता येईल?
04:25 आपण in operator वापरू शकतो.
04:28 आपण आधीच या सिरीजमधील single-dimensional array मध्ये ते पाहिले आहे.
04:34 आपल्याला indices चे संपूर्ण sequence parentheses मध्ये लिहायचे आहे आणि commas द्वारे वेगेळे केले गेले आहे.
04:42 आपण हे एका उदाहरणमध्ये पाहू.
04:45 मी आधीच test_multi.awk नावाची एक स्क्रिप्ट लिहिली आहे.
04:51 हे समान या ट्यूटोरियल पृष्टच्या Code Files लिंकमध्ये उपलब्ध आहे.
04:56 मी आपल्या मागील चर्चामध्ये पाहिल्याप्रमाणे 2 by 2 array परिभाषित केले आहे.
05:02 नंतर मी दोन if conditions लिहिले आहे.
05:06 प्रथम if condition index one comma one वर element उपस्थित आहे किंवा नाही ते तपासते.
05:13 आपल्याला parentheses मध्ये multidimensional array साठी index लिहायचे आहे.
05:18 condition true असल्यास, ते one comma one is present प्रिंट होईल.
05:23 नाहीतर ते one comma one is absent प्रिंट होईल.
05:28 त्याचप्रमाणे आपण index three comma one वर element ची उपस्थिती तपासू.

आपण फाईल कार्यान्वित करू.

05:36 टर्मिनल वर जाऊ आणि टाईप करा awk space hyphen small f space test underscore multi dot awk आणि Enter दाबा.
05:49 आउटपुट म्हणतो कि one comma one is present आणि three comma one is absent आहे.
05:55 आपण आणखी एक उदाहरण घेऊ.

समजा, आपल्याला matrix चे transpose तयार करायचे आहे.

06:02 दिलेल्या matrix चे transpose matrix च्या rows आणि columns मध्ये बदलून तयार केले आहे. आपण हे कसे करू शकतो?
06:11 मी 2D-array.txt फाईलमध्ये two-dimensional array matrix तयार केले आहे.
06:19 मी transpose.awk नावाचा कोड लिहीला आहे.
06:24 प्रथम या awk script चे action section पहा.
06:29 येथे आपण row मधील fields ची जास्तीत जास्त संख्येची गणना करत आहोत.

आणि गणना केलेल्या व्हॅल्यू variable max_nf मध्ये संग्रहित केले.

06:40 जसे आपल्याला माहित आहे कि, NR awk प्रक्रिया केलेल्या वर्तमान records ची संख्या आहे.

NR ची व्हॅल्यू max_nr variable मध्ये संग्रहित आहे.

06:50 Awk , प्रथम record पासून ते अंतिम record पर्यंत input file प्रक्रिया करेल.
06:56 जेव्हा awk प्रथम record वर प्रक्रिया करत असेल, तेव्हा max_nr हे 1 च्या बरोबर असेल.
07:03 दुसरा record प्रक्रिया करतांना, max_nr हे 2 असेल आणि ते असेच चालू राहील.
07:11 जेव्हा awk अंतिम record प्रक्रिया करत असताना, max_nr records च्या एकूण संख्येस संग्रहित करेल.
07:19 आता आपण input file मधील डेटा वाचला पाहिजे आणि डेटाला two dimensional array मध्ये संग्रहित केले पाहिजे.
07:26 for loop च्या आत, आपल्याकडे iterator variable x आहे.
07:31 x एक पासून NF पर्यंत पुढे जाईल, आणि x प्रत्येक iteration नंतर 1 ने वाढेल.
07:39 x, $x(dollar x) च्या प्रत्येक व्हॅल्यूसाठी, field x वर व्हॅल्यू प्रतिनिधित्व करते.
07:46 ती व्हॅल्यू index NR comma x वर array matrix मध्ये संग्रहित केली जाईल.
07:53 उदाहरणार्थ, matrix of 1 comma 1 व्हॅल्यू संग्रहित करते जी input file मधून index 1 comma 1 वर उपस्थित आहे.
08:02 म्हणून, awk नंतर या कोडसह संपूर्ण input file प्रक्रिया केली गेली आहे, matrix array पूर्णपणे तयार केली जाईल.
08:10 ते input file चे संपूर्ण डेटा two dimensional array फॉरमॅटमध्ये संग्रहित करेल.
08:16 आता END section च्या आत पाहूया.
08:20 आपण matrix चा transpose प्रिंट करण्यासाठी nested for loop लिहिले आहे.
08:25 मी गृहीत धरते कि तुम्ही मूलभूत C programming शी परिचित आहात.

म्हणून, मी कोडचा हा भाग तपशीलवार समजावून देत नाही.

08:34 कोडला तपशीलमध्ये पाहण्यासाठी आणि स्वतःहून समजून घेण्यासाठी येथे विडिओ थांबवा.
08:40 आता आपण multidimensional array कसा स्कॅन करावा ते शिकू.
08:45 Awk मध्ये multi-dimensional array खरोखर नाही.
08:50 म्हणून, multidimensional array स्कॅन करण्यासाठी कोणताही विशेष for statement असू शकत नाही.
08:56 array स्कॅन करण्यासाठी तुमच्याकडे multidimensional मार्ग असू शकतात.
09:00 तुम्ही यासाठी split function सह for statement एकत्रित करू शकता.
09:05 आता split function म्हणजे काय ते पाहू.

split function ,string ला भागांमध्ये वेगळे करण्यासाठी आणि विभाजित करण्यासाठी वापरला जातो.

09:14 आणि विविध भाग एका array मध्ये ठेवा.
09:18 खालीलप्रमाणे सिंटॅक्स आहे. प्रथम argument मध्ये string भाग होण्यासाठी आहे.
09:25 दुसरा argument array चे नाव निर्दिष्ट करते जेथे वेगळ्या केलेल्या भागांमध्ये split ला ठेवेल.
09:33 तिसऱ्या argument मध्ये separator चा उल्लेख आहे जे string ला वेगळे करण्यासाठी वापरले जाईल.
09:39 पहिला भाग arr 1 मध्ये संग्रहित केला जातो.
09:43 दुसरा भाग arr 2 मध्ये आणि तसेच पुढे.
09:48 समजा, आपल्याला आधीच तयार केलेल्या array मधून indices चे मूळ क्रम पुनर्प्राप्त करायचे आहे. तर आपण हे कसे करू शकतो?
09:56 मी multi_scan.awk नावाचा कोड लिहीला आहे.
10:02 संपूर्ण कोड BEGIN section च्या आत लिहिला आहे.
10:06 प्रथम आपण a नावाचा array तयार केला आहे आणि या व्हॅल्युजना त्यास असाइन केले आहेत.
10:12 मग आपल्याकडे iterator सह for loop आहे.
10:16 iterator हे प्रत्येक iteration साठी indices values प्रत्येकावर सेट केला जाईल.

समजा 1,1 नंतर 1,2 आणि तसेच पुढे.

10:27 split function iterator ला SUBSEP शी वेगळे करून भागांमध्ये विभाजित करते.
10:34 array arr मध्ये भागांना संग्रहित केले जातील.
10:38 तर, arr[1] आणि arr[2] मध्ये क्रमशः प्रथम index आणि दुसरा index असेल.

आता ही फाईल कार्यान्वित करू.

10:48 टर्मिनल वर जा आणि टाईप करा- awk space hyphen small f space multi underscore scan dot awk आणि Enter दाबा.
11:01 आउटपुट पहा; indices चे मूळ अनुक्रम पुनर्प्राप्त केले आहे.
11:07 थोडक्यात. या ट्युटोरिअलमध्ये आपण शिकलो- awk मध्ये multidimensional array तयार करणे आणि multidimensional array स्कॅन करणे.
11:18 असाइन्मेंट म्हणून, two dimensional array 90 अंशाने फिरवण्यासाठी awk script लिहा आणि फिरवलेल्या matrix प्रिंट करा.
11:28 खालील लिंकवरील व्हिडिओ 'स्पोकन ट्युटोरियल' प्रोजेक्टचा सारांश देते. कृपया ते डाउनलोड करून पहा.
11:36 स्पोकन ट्युटोरियलच्या सहाय्याने कार्यशाळा चालविते.

परीक्षा उत्तीर्ण होणा-या विद्यार्थ्यांना प्रमाणपत्रही दिले जाते.

11:45 अधिक माहितीसाठी कृपया आम्हाला लिहा.
11:49 कृपया या फोरममध्ये आपली कालबद्ध प्रश्न पोस्ट करा.
11:53 "स्पोकन ट्युटोरियल प्रॉजेक्ट" ला अर्थसहाय्य National Mission on Education through ICT, MHRD, Government of India यांच्याकडून मिळालेले आहे.

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

12:05 या स्क्रिप्टचे योगदान अंतराने केले आहे.

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

Contributors and Content Editors

Ranjana