Linux-AWK/C2/MultiDimensional-Array-in-awk/Sanskrit
|
|
00:01 | MultiDimensional Array in awk इति पाठार्थं भवद्भ्यः स्वागतम् । |
00:07 | पाठेऽस्मिन् वयम् –
awkमध्ये, 'मल्टि डैमेन्शनल् अरे' इत्यस्य रचना अपि च तस्य स्केन् करणम् च ज्ञास्यामः । |
00:18 | इदं कैश्चन उदाहरणैः सह करिष्यामः । |
00:21 | पाठमिदं रेकोर्ड् कर्तुमहम् :
Ubuntu Linux 16.04 ओपरेटिङ्ग् सिस्टम् अपि च gedit टेक्स्ट् एडितर् 3.20.1 इतीमे उपयुनज्मि । |
00:33 | भवतामभीष्टानुसारेण यत्किमपि टेक्स्ट्-एडिटर् उपयोक्तुमर्हन्ति भवन्तः । |
00:37 | पाठस्यास्य अभ्यासाय भवन्तः, अस्माकं जालपुटे array विषयकानि पूर्वतन awk ट्युटोरियल्स् पश्येयुः । |
00:45 | भवद्भ्यः C अथवा C++ सदृशानां प्रोग्रामिङ्ग्-भाषाज्ञानमावश्यकम् । |
00:52 | नास्ति चेत् , अस्माकं जालपुटस्थानि तत्सम्बद्धानि ट्युटोरियल्स् पश्यन्तु । |
00:58 | अत्रोपयुक्ताः सञ्चिकाः, अस्मिन्नेव पृष्टे Code Files लिङ्क् मध्ये लभ्याः सन्ति ।
कृपया ताः अवचित्य extract कुर्वन्तु । |
01:08 | awk मध्ये, 'मल्टि डैमेन्शनल् अरे' (multidimensional array) नाम किम्? |
01:12 | 'सिङ्गल् डैमेन्शनल् अरेस्' मध्ये, 'अरे एलिमेण्ट्' इतीदं एकेनैव इण्डेक्स् द्वारा अभिजानाति, इति ज्ञातवन्तः वयं पूर्वम् । |
01:19 | उदाहरणार्थं, अरे week इतीदं, dayइति इण्डेक्स् द्वारा अभिजानीमः । |
01:26 | परन्तु 'मल्टि डैमेन्शनल् अरे' मध्ये, एलिमेण्ट् इतीदं नाना इण्डेक्स् सेक्वेन्स् द्वारा अभिज्ञायते । |
01:34 | उदाहरणार्थं, टु-डैमेन्शनल्-अरे मध्ये, एलिमेण्ट् इतीदं द्वे इण्डेक्स् सीक्वेन्स् द्वारा अभिज्ञायते । |
01:42 | अत्र, बहूनि इण्डेक्स् इतीमानि, तेषां मध्ये सपरेटर् इत्यनेन सह, एकस्मिन् 'स्ट्रिङ्ग्' मध्ये संयोजितानि । (concatenated). |
01:50 | सपरेटर् इतीदं, बिल्ट् इन् वेरियेबल् SUBSEP इत्यस्य मूल्यमस्ति । |
01:55 | सरलाय, वन्-डैमेन्शनल्-अरे इत्यस्मै , संयोजितं स्ट्रिङ्ग् इतीदं एकैव इण्डेक्स् रूपेण उपयुञ्ज्महे । |
02:01 | उदाहरणार्थं वयम् multi within square brackets 4 comma 6 equal to value, in double quotes इति लिखामः इति कल्पयाम । |
02:11 | अत्र, 'multi' – इतीदं 'मल्टि डैमेन्शनल् अरे' इत्यस्य नाम अस्ति ।
'4' अपि च '6' इमे सङ्ख्ये 'स्ट्रिङ्ग्' इत्यस्मै परिवर्तिते । |
02:21 | SUBSEP इत्यस मूल्यं हेश्-चिह्नम् (#) अस्तीति वदाम । |
02:26 | तदा ताः सङ्ख्याः, तासां मध्ये 'हेश्-चिह्न(#)' द्वारा संयुज्यन्ते । |
02:32 | अतः अरे एलिमेण्ट्, multi within square brackets within double quotes 4 hash 6 इतीदं, डबल् कोट्स् मध्ये value इत्यस्मै सेट् कृतम् । |
02:43 | SUBSEP इत्यस्य डीफ़ोल्ट्-वेल्यू, डबल्-कोट्स् मध्ये backslash 034 इति स्ट्रिङ्ग् वर्तते । |
02:50 | वस्तुतः इदं non-printing character वर्तते ।
सामान्यतः इदं बहुषु इन्पुट् डेटा इत्येतेषु न दृश्यते । |
02:58 | स्लैड् मध्ये यथा दर्शितं तथा, टु-डैमेन्शनल्-अरे डिक्लेर्-कर्तुं वयं प्रयतामहै । |
03:03 | Row 1, 'A' अपि च 'B' इति द्वे एलिमेण्ट्स् प्राप्तवदस्ति । |
03:08 | Row 2, 'C ' अपि च 'D' इति द्वे एलिमेण्ट्स् प्राप्तवदस्ति । |
03:12 | CTRL, ALT अपि च T कीलकानि नुत्त्वा टर्मिनल् उद्घाटयन्तु । |
03:17 | cd कमाण्ड् उपयुज्य, भवन्तः Code Files इतीदं डौन्लोड् तथा extract कृतं फोल्डर् प्रति गच्छन्तु । |
03:24 | अधुना 'अरे' इतीदं अधः यथा दर्शितं तथा व्याख्यानं कुर्वन्तु । अत्र दर्शितानि कमाण्ड्स् आदरेण टैप् कुर्वन्तु ।
पश्चात् Enter नुदन्तु । |
03:35 | विना दोषैः वयं कमाण्ड्-प्रोम्ट् प्राप्तवन्तः ।
एवं, 'अरे' व्याख्यातम् । |
03:41 | कोड् मध्ये, मुद्रापयितुं अस्माभिः न किमपि दत्तम् । अतः वयं फलितं न प्राप्नुमः । |
03:47 | वयं प्रिण्ट्-स्टेट्मेण्ट् संयोजयाम । |
03:50 | टर्मिनल् मध्ये पूर्वतन कमाण्ड् प्राप्तुम् , 'अप् एरो' कीलकं नुदन्तु । |
03:56 | 'कर्लि ब्रेकेट्' पिधानात् प्राक् एवं टङ्कयन्तु : semicolon space print space a within square brackets 2 comma 2.
कमाण्ड् एक्सिक्यूट् कर्तुं, Enter नुदन्तु । |
04:13 | अवलोक्यतां यत्, वयं फलितं केपिटल् 'D' इति प्राप्नुमः । |
04:18 | यस्मिन् कस्मिन्नपि 'मल्टि डैमेन्शनल् अरे' मध्ये, एकं 'इण्डेक्स् सीक्वेन्स्' परीक्षणं कथम्? |
04:25 | तदर्थं वयं in ओपरेटर् उपयोक्तुं शक्नुमः । |
04:28 | अस्मिन् ततौ, इदं पूर्वमेव वयं 'सिङ्गल् डैमेन्शनल् अरे' मध्ये दृष्टवन्तः । |
04:34 | वयम् अल्पविरामचिह्नेन पृथक् कृतानाम् इण्डेक्स् इत्येतेषां सम्पूर्णं सीक्वेन्स् इतीदं आवरणे विलिखेम । |
04:42 | इदमेकेन उदाहरणेन सह पश्याम । |
04:45 | अहं पूर्वमेव test_multi.awk इति स्क्रिप्ट् लिखितवानस्मि । |
04:51 | ट्युटोरियल् मध्ये पृष्टस्य Code Files लिङ्क मध्ये इदमुपलभ्यमस्ति । |
04:56 | अस्माकं पूर्वतन चर्चायाम् यथा दृष्टं तथाहं 2 by 2 अरे इत्यस्य व्याख्यानं कृतवानस्मि । |
05:02 | पश्चादहं, द्वे if कण्डीशन्स् लिखितवानस्मि । |
05:06 | प्रथमं if कण्डीशन्, इण्डेक्स् one comma one मध्ये, एलिमेण्ट् अस्ति वा नवेति परीक्षते । |
05:13 | वयं 'मल्टि डैमेन्शनल् अरे' इत्यस्मै, इण्डेक्स् इतीदम् आवरणे (parentheses) विलिखेम । |
05:18 | कण्डीशन् true अस्ति चेत्, तत् one comma one is present इति मुद्रापयति । |
05:23 | न चेत्, तत् one comma one is absent इति मुद्रापयति । |
05:28 | एवमेव, इण्डेक्स् three comma one मध्ये एलिमेण्ट्-इत्यस्य अस्तित्वं वयं परीक्षामहे ।
सञ्चिकाम् एक्सिक्यूट् कुर्मः । |
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 | अन्यमेकम् उदाहरणं पश्याम ।
अधुना, अस्माकं मेट्रिक्स् इत्यस्य 'ट्रान्स्पोस्' इत्यस्य रचना आवश्यकम् इति वदाम । |
06:02 | एकस्य मेट्रिक्स् इत्यस्य 'रोस्' अपि च 'कोलम्स्' इतीमनि व्यतिहरणद्वारा, तस्य 'मेट्रिक्स्' इत्यस्य 'ट्रान्स्पोस्' इतीदं रचयामः ।
वयं तत् कथं कर्तुं शक्नुमः? |
06:11 | 2D-array.txt सञ्चिकायाम्, अहं टु-डैमेन्शनल्-अरे-मेट्रिक्स्(two-dimensional array matrix) इतीदं रचितवानस्मि । |
06:19 | अहं transpose.awk इति नाम्नः कोड् लिखितवानस्मि । |
06:24 | आदौ, अस्य awk स्क्रिप्ट् इत्यस्य action विभागं पश्यन्तु । |
06:29 | अत्र, एकस्मिन् पङ्क्तौ(row), फील्ड्-इत्येतेषां गरिष्ठसङ्ख्यां गणयामः । अपि च इदं मूल्यं max_nf इति वेरियेबल् मध्ये स्टोर्-कृतवन्तः । |
06:40 | जानीमः यत्, NRइतीदं, awkइत्यनेन प्रोसेस्-कृतानां रेकोर्ड्-सङ्ख्या अस्ति ।
NR इत्यस्य मूल्यम्, max_nr वेरियेबल् मध्ये स्टोर् कृतवानस्मि । |
06:50 | Awk, इन्पुट्-सञ्चिकां प्रथम-रेकोर्ड्-आरभ्य अन्तिम-रेकोर्ड्-पर्यन्तं प्रोसेस् करोति । |
06:56 | Awkद्वारा प्रथम-रेकोर्ड् इत्यस्य प्रोसेस्-करणकाले , max_nr 1 भविष्यति । |
07:03 | द्वितीय-रेकोर्ड् इत्यस्य प्रोसेस्-करणकाले, max_nr 2 भविष्यति अपि च तदेवं पुनरावर्तते । |
07:11 | awkद्वारा अन्तिम-रेकोर्ड् इत्यस्य प्रोसेस्-करणकाले, max_nr सर्वेषां रेकोर्ड्-सङ्ख्यां स्टोर्-करोति । |
07:19 | वयमधुना 'इन्पुट् सञ्चिकया' डेटा पठेम । अपि च डेटा इतीदं टु-डैमेन्शनल्-अरे मध्ये स्टोर् भवेत् । |
07:26 | for लूप् इत्यस्यान्तः, 'इटरेटर् वेरियेबल् x' वर्तते । |
07:31 | ‘x’ एकेन NF पर्यन्तं गमिष्यति । अपि च प्रत्येकस्य इटरेशन् इत्यस्यानन्तरं ‘x’ इतीदं 1 इत्यनेन वर्धयति । |
07:39 | ‘x’ इत्यस्य सर्वेभ्यः मूल्येभ्यः, $ x (डोलर् x), फील्ड् ‘x’ मध्ये स्थितं मूल्यं सूचयति । |
07:46 | तं मूल्यम्, matrix अरे इत्यस्य NR comma x इण्डेक्स् मध्ये स्टोर् कुर्मः । |
07:53 | उदाहरणार्थम्, matrix of 1 comma 1, इन्पुट्-सञ्चिकया इण्डेक्स् 1 comma 1 मध्यस्थं मूल्यं स्टोर् करोति । |
08:02 | अतः, awk अनेन कोड्-द्वारा पूर्णा इन्पुट्-सञ्चिका प्रोसेस्-कृते सति matrix अरे, सिद्धं भवति । |
08:10 | इदम् 'इन्पुट् सञ्चिकायाः' सर्वाणि डेटा इतीमानि, 'टु डैमेन्शनल् अरे' इत्यस्य फोर्मेट् मध्ये स्टोर् करोति । |
08:16 | वयमधुना END विभागस्य अन्तः पश्याम । |
08:20 | matrix इत्यस 'ट्रान्स्पोस्' मुद्रापयितुं, वयमेकं 'नेस्टेड् for लूप्' लिखितवन्तः । |
08:25 | भवद्भ्यः 'C प्रोग्रमिङ्ग्' ज्ञानमस्तीति मत्त्वा अहं कोड्-इत्यस्य विवरणं विस्तरेण न कृतवान् । |
08:34 | कोड्-इतीदं सविवरं दृष्टुं ज्ञातुञ्च विडियो इत्यस्मै अत्रैव विरामं ददतु । |
08:40 | अधुना, 'मल्टि डैमेन्शनल् अरे' इत्यस्य स्केन् करणं कथमिति ज्ञास्यामः । |
08:45 | परमार्थतः, Awk, 'मल्टि डैमेन्शनल् अरे'-युतं नास्ति । |
08:50 | अतः, 'मल्टि डैमेन्शनल् अरे' इतीदं स्केन्-कर्तुं अत्र अन्यं विशिष्टं for स्टेट्मेण्ट् भवितुं नार्हति । |
08:56 | अरे इत्यस्य स्केन्-करणाय, भवन्तः 'मल्टि डैमेन्शनल्' क्रमम् उपयोक्तुमर्हन्ति । |
09:00 | अतः भवन्तः, for स्टेट्मेण्ट्-इतीदं split() फङ्क्षन्-मध्ये संयोजितुमर्हन्ति । |
09:05 | split फङ्क्षन् नाम किम्?
'स्ट्रिङ्ग्' कर्तयितुं अथवा भागद्वयं कर्तुम्, |
09:14 | अपि च नाना भागान् एकस्मिन् 'अरे'मध्ये स्थापयितुं, split फङ्क्षन् उपयुञ्ज्महे । |
09:18 | सिण्टेक्स् एवम् वर्तते -
प्रथमम् 'आर्ग्युमेण्ट्', कर्तनं भूयमानं 'स्ट्रिङ्ग्' युतमस्ति । |
09:25 | द्वितीयम् 'आर्ग्युमेण्ट्' 'split() इतीदं, विभक्तान् भागान् स्थाप्यमाणम् 'अरे'नेम् सूचयति । |
09:33 | तृतीयम् 'आर्ग्युमेण्ट्' , स्ट्रिङ्ग्-कर्तयितुं उपयुज्यमानं सपरेटर् विषयं विवृणोति । |
09:39 | प्रथमः भागः arr 1 ( ए आर् आर् वन्) मध्ये स्टोर् क्रियते । |
09:43 | द्वितीयः भागः arr 2 मध्ये, एवम्… |
09:48 | रचितेन 'अरे'इत्यनेन, अस्माभिः मूलानुक्रमं पुनः प्राप्तव्यं चेत् ; तत् कथं क्रियते ? |
09:56 | अहं multi_scan.awk इति नाम्नः कोड् लिखितवानस्मि । |
10:02 | सम्पूर्णं कोड् इतीदं BEGIN विभागे लिखितम् । |
10:06 | पूर्वं वयम् a इति नाम्नः अरे रचितवन्तः । तस्मै मूल्यम् असैन् कृतवन्तः च । |
10:12 | पश्चात्, iterator इत्यनेन सह for लूप् प्राप्तवन्तः । |
10:16 | सर्वेभ्यः इटरेशन्-अर्थम्, iterator इतीदं प्रत्येकस्मै इण्डेक्स्-वेल्यू-इत्यस्मै सेट् क्रियते । 1,1 पश्चात् 1,2 एवम्… |
10:27 | split() फङ्क्षन्, 'इटरेटर् ' इतीदं SUBSEP इत्यनेन पृथक्-कृतान् भागान् इव विभाजयति । |
10:34 | इमे भागाः arr इति अरे मध्ये स्टोर् क्रियन्ते । |
10:38 | अतः, arr[1] अपि च arr[2] क्रमेण प्रथमं द्वितीयञ्च इण्डेक्स् प्राप्येते ।
इमां सञ्चिकाम् एक्सिक्यूट् कुर्मः । |
10:48 | 'टर्मिनल्' गत्वा एवं टङ्कयन्तु - awk space hyphen small f space multi underscore scan dot awk .
अपि च Enter नुदन्तु । |
11:01 | फलितं पश्यन्तु । इण्डेक्स् इत्येतेषां मूलं सीक्वेन्स् पुनः प्राप्तवन्तः स्मः । |
11:07 | सङ्क्षेपेण, पाठेऽस्मिन् वयम् -
awk मध्ये, 'मल्टि डैमेन्शनल् अरे' इत्यस्य रचना अपि च तस्य स्केन्-करणं कथमिति ज्ञातवन्तः । |
11:18 | एकं पाठनियोजनम् -
'टु डैमेन्शनल् अरे' इतीदं 90डिग्री भ्रामयितुं, भ्रामितं 'मेट्रिक्स्' मुद्रापयितुञ्च एकम् awk स्क्रिप्ट् लिखन्तु । |
11:28 | पर्चन्याम् विद्यमानं विडियो, “spoken tutorial” प्रकल्पस्य सारं दर्शयति । तदवचित्य पश्यन्तु । |
11:36 | “spoken tutorial” प्रकल्पगणः, इमान् पाठान् उपयुज्य कार्यशालां चालयति । उत्तीर्णेभ्यः प्रमाणपत्रं ददाति । |
11:45 | अधिकविवरणार्थम् अस्मभ्यं लिखन्तु । |
11:49 | भवतां प्रश्नान् मिनिट् सेकेण्ड् इत्यनयोः सह फोरं मध्ये लिखन्तु । |
11:53 | "Spoken Tutorial" प्रकल्पः, NMEICT, MHRD द्वारा भारतसर्वकारस्य अनुदानं प्राप्तवान् अस्ति । अधिकविवरणं अस्यां पर्चन्याम् उपलभ्यते । |
12:05 | पाठस्यास्य अनुवादकः प्रवाचकश्च श्री नवीनभट्टः उप्पिनपट्टणम् । धन्यवादाः । |