Linux-AWK/C2/MultiDimensional-Array-in-awk/Nepali
|
|
00:01 | नमस्कार! awk मा मल्टिडाइमेन्सनल अरेहरू सृजना गर्ने स्पोकन ट्युटोरियलमा स्वागत छ |
00:07 | यो ट्युटोरियलमा, हामी यी कुराहरू सिक्ने छौं -
awk मा मल्टिडाइमेन्सनल अरे सृजना गर्न र मल्टिडाइमेन्सनल अरे स्क्यान गर्न |
00:18 | यसको लागि हामी केही उदाहरणहरू प्रयोग गर्ने छौं |
00:21 | यो ट्युटोरियल रेकर्ड गर्न, म उबुन्टु लिनक्स १६.०४ अपरेटिंग सिस्टम र gedit टेक्स्ट एडिटर ३.२०.१ प्रयोग गर्द छु |
00:33 | तपाई आफ्नो रोजाईको कुनैपनि टेक्स्ट एडिटर प्रयोग गर्न सक्नुहुन्छ |
00:37 | यो ट्युटोरियल अभ्यास गर्न, तपाईले यो वेबसाइटका अघिल्ला अरेका awk ट्युटोरियलहरू हेरेको हुनुपर्छ |
00:45 | तपाईसँग प्रोग्रामिंग ल्याङ्ग्वेज जस्तै C वा C++ को आधारभूत ज्ञान हुनुपर्छ |
00:52 | अन्यथा, हाम्रो वेबसाइटमा रहेको सम्बन्धित ट्युटोरियलहरू हेर्नुहोला |
00:58 | यो ट्युटोरियलमा प्रयोग गरिएका फाइलहरू यो पेजको Code Files लिङ्कमा उपलब्ध छ
तिनीहरूलाई डाउनलोड गरी एक्सट्रयाक्ट गर्नुहोला |
01:08 | awk मा मल्टिडाइमेन्सनल अरे के हो? |
01:12 | हामीलाई थाहा छ कि, सिंगल डाइमेन्सनल अरेहरूमा, एउटा अरे एलिमेंट एउटा इन्डेक्स ले चिनिन्छ |
01:19 | उदाहरणको लागि, अरे week लाई एउटा इन्डेक्स day ले चिनिन्छ |
01:26 | तथापि, मल्टिडाइमेन्सनल अरेमा एउटा एलिमेंट लाई एकभन्दा बढि इन्डेक्सहरूको अनुक्रमले चिनिन्छ |
01:34 | उदाहरणको लागि, एउटा टु डाइमेन्सनल अरेलाई २ इन्डेक्सहरूको अनुक्रमले चिनिन्छ |
01:42 | यहाँ, एकभन्दा बढि इन्डेक्सहरूलाई एउटा सेपरेटर बीचमा राखेर एउटा स्ट्रिंग मा जोडिन्छ |
01:50 | सेपरेटर बिल्ट-इन् भेरिएबल SUBSEP को मान हो |
01:55 | जोडिएको स्ट्रिंग एउटा साधारण वान डाइमेन्सनल अरेको लागि एउटा इन्डेक्स ko रूपमा प्रयोग गरिन्छ |
02:01 | उदाहरणको लागि, मानौं हामी यस्तो लेख्छौं: multi स्क्वाएर ब्राकेट भित्र 4 कमा 6 इक्वल टु दोहोरो उद्दरणमा value |
02:11 | यहाँ, multi एउटा मल्टिडाइमेन्सनल अरे को नाम हो
अनि, नम्बरहरू 4 र 6 लाई एउटा स्ट्रिंग मा बदलिएको छ |
02:21 | मानौं, SUBSEP को मान ह्याश चिन्ह (#) रहेको छ |
02:26 | अनि, यी नम्बरहरूलाई बीचमा एउटा ह्याश (#) चिन्ह सहित जोडिने छ |
02:32 | त्यसैले, अरे एलिमेंट multi स्क्वाएर ब्राकेट भित्र दोहोरो उद्दरणमा 4 ह्याश 6 मा दोहोरो उद्दरण भित्रको value' रहन्छ |
02:43 | SUBSEP को डिफल्ट मान दोहोरो उद्दरण भित्रको ब्याकस्ल्याश 034 स्ट्रिंग हो |
02:50 | यो वास्तबमा प्रिन्ट नहुने क्यारेक्टर हो
यो प्रायजसो इन्पुट डेटामा देखा पर्दैन |
02:58 | अब, यहाँ स्लाइड मा देखाए झैँ एउटा 2- डाइमेन्सनल अरे घोषणा गरौं |
03:03 | Row 1 मा दुई एलिमेंटहरू A र B छन् |
03:08 | Row 2 मा दुई एलिमेंटहरू C र D छन् |
03:12 | Ctrl, Alt र T किहरू प्रयोग गरी टर्मिनल खोलौं |
03:17 | cd कमाण्ड प्रयोग गरी Code Files लिंकबाट फाइल डाउनलोड गरेको फोल्डरमा जाऊ |
03:24 | अब, यसरी अरे परिभाषित गरौं, यहाँ देखाए झैँ कमाण्ड टाइप गरौं
अनि, एन्टर थिचौं |
03:35 | हामी कुनै एरर विना एउटा कमाण्ड प्रम्प्ट प्राप्त गर्छौं
यसरी, अरे परिभाषित भएको छ |
03:41 | हामीले कुनै पनि आउटपुट प्राप्त गर्दैनौं किनभने हामीले कोड मा केही पनि प्रिन्ट गर्न भनेका छैनौं |
03:47 | अब, print स्टेटमेन्ट थपौं |
03:50 | टर्मिनल मा अघिल्लो पटक एक्जिक्युट गरेको कमाण्ड प्राप्त गर्न अप एरो कि थिचौं |
03:56 | बन्द हुने कर्ली ब्राकेट अगाडी टाइप गरौं: सेमिकोलन स्पेस print स्पेस a स्क्वाएर ब्राकेट भित्र 2 कमा 2
कमाण्ड एक्जिक्युट गर्न एन्टर थिचौं |
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 बाई 2 अरे परिभाषित गरेको छौं |
05:02 | अनि, यहाँ दुई 'if' कन्डिसन हरू छन् |
05:06 | पहिलो if कन्डिसनले इन्डेक्स 1 कमा 1 मा पहिलो एलिमेंट भए/नभएको जाँच्ने छ |
05:13 | हामीले मल्टिडाइमेन्सनल अरे को लागि इन्डेक्स ब्राकेटमा लेख्नुपर्छ |
05:18 | यदि कन्डिसन सही भएमा यसले one comma one is present प्रिन्ट गर्छ |
05:23 | अन्यथा, यसले one comma one is absent प्रिन्ट गर्छ |
05:28 | यसैगरी, इन्डेक्स 3 कमा 1 मा एलिमेंट भए/नभएको जाँच्ने छौं
फाइल एक्जिक्युट गरौं |
05:36 | टर्मिनल मा जाऊ र टाइप गरौं: awk स्पेस हाइफन सानो f स्पेस test अन्डरस्कोर multi डट awk र एन्टर थिचौं |
05:49 | आउटपुट यस्तो देखिन्छ: one comma one is present र three comma one is absent |
05:55 | एउटा थप उदाहरण हेरौं
मानौं, हामी एउटा म्याट्रिक्स को ट्रांस्पोज सृजना गर्न चाहन्छौं |
06:02 | कुनै पनि म्याट्रिक्स को ट्रान्सपोज निकाल्न उक्त म्याट्रिक्स को रोहरू लाई कोलम हरू सँग बदल्नुपर्छ
हामी यसो कसरी गर्न सक्छौं त? |
06:11 | मैले 2D-array.txt फाइलमा एउटा 2-डाइमेन्सनल अरे सृजना गरेकी छु |
06:19 | मैले transpose.awk नामक कोड लेखेकी छु |
06:24 | पहिले, यो awk स्क्रिप्टको action सेक्सनमा हेरौं |
06:29 | यहाँ, हामी रो को फिल्डहरू को सबैभन्दा ठूलो नम्बर हिसाब गर्दै छौं
र उक्त मान भेरिएबल 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 | अब, हामीले इन्पुट फाइलबाट डेटा रिड गरेर एउटा 2-डाइमेन्सनल अरेमा भण्डार गर्नुपर्छ |
07:26 | 'for' लूप, भित्र iterator भेरिएबल x रहेको छ |
07:31 | x को मान 1 देखि NF सम्म हुने छ र प्रत्येक पटक को पुनरावृत्ति पछि x को मान १ ले बढ्ने छ |
07:39 | x, $x(dollar x) को प्रत्येक मानले फिल्ड x को मान जनाउँछ |
07:46 | उक्त मान, अरे म्याट्रिक्स को इन्डेक्स NR कमा x मा भण्डार हुने छ |
07:53 | उदाहरणको लागि, 1 कमा 1 को म्याट्रिक्स ले इन्पुट फाइलको इन्डेक्स 1 कमा 1 मा रहेको मान भण्डार गर्ने छ |
08:02 | यसरी, यो कोडले awk मा सम्पूर्ण इन्पुट फाइल प्रोसेस गरेपछि एउटा पूर्ण म्याट्रिक्स अरे बन्ने छ |
08:10 | यसले इन्पुट फाइलको सम्पूर्ण डेटा एउटा 2 डाइमेन्सनल अरे फर्म्याटमा भण्डार गर्ने छ |
08:16 | अब, END सेक्सन भित्र हेरौं |
08:20 | हामीले म्याट्रिक्स को ट्रान्सपोज प्रिन्ट गर्न एउटा nested for loop लेखेका छौं |
08:25 | म तपाईसँग C प्रोग्रामिंग को आधारभूत ज्ञान भएको ठान्छु
त्यसैले, म कोडको यो खण्डको बारेमा चर्चा गर्ने छैन |
08:34 | भिडियो यहाँ रोकौं र कोड थप आफैँ बुझौं |
08:40 | अब, हामी एउटा मल्टिडाइमेन्सनल अरे कसरी स्क्यान गर्ने सिक्ने छौं |
08:45 | Awk मा यथार्थ रूपमा मल्टिडाइमेन्सनल अरे हुँदैन |
08:50 | त्यसैले, मल्टिडाइमेन्सनल अरे स्क्यान गर्ने विशेष 'for' स्टेटमेन्ट हुन सक्दैन |
08:56 | हामी एउटा अरे स्क्यान गर्न मल्टिडाइमेन्सनल तरिका भने प्रयोग गर्न सक्छौं |
09:00 | यसको लागि हामी split फंक्सन प्रयोग गरी for' स्टेटमेन्ट ले जोड्न सक्छौं |
09:05 | अब, split फंक्सन के हो बुझौं
split फंक्सन एउटा स्ट्रिंगलाई सानो टुक्राहरूमा छुट्टयाउन वा टुक्राउन प्रयोग गरिन्छ |
09:14 | र विभिन्न टुक्राहरू एउटा अरे मा राख्छ |
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() फंक्सन ले iterator लाई SUBSEP ले छुट्टयाउदै टुक्रा पार्ने छ |
10:34 | यी टुक्राहरू अरे arr मा भण्डार हुन्छन् |
10:38 | यसरी, arr[1] र arr[2] मा पहिलो इन्डेक्स र दोस्रो इन्डेक्स क्रमश: भण्डार हुने छ
यो फाइल एक्जिक्युट गरौं |
10:48 | टर्मिनल मा जाऊ र टाइप गरौं - awk स्पेस हाइफन सानो f स्पेस multi अन्डरस्कोर scan डट awk
एन्टर थिचौं |
11:01 | आउटपुट हेरौं, हामी मूल इन्डेक्सको अनुक्रम देख्न सक्छौं |
11:07 | सङ्क्षेपमा हेरौं, यो ट्युटोरियलमा हामीले यी कुराहरू सिक्यौं – awk मा एउटा मल्टिडाइमेन्सनल अरे सृजना गर्न र मल्टिडाइमेन्सनल अरे स्क्यान गर्न |
11:18 | कार्यको रूपमा,
एउटा 2-डाइमेन्सनल अरे ९० डिग्री रोटेट गरेर रोटेट भएको म्याट्रिक्स प्रिन्ट गर्ने एउटा awk स्क्रिप्ट लेख्नुहोस् |
11:28 | तलको लिङ्कमा उपलब्ध भिडियोले स्पोकन ट्युटोरियल प्रोजेक्टको सार दिन्छ
कृपया यसलाई डाउनलोड गरी हेर्नुहोला |
11:36 | स्पोकन ट्युटोरियल प्रोजेक्ट टिमले स्पोकन ट्युटोरियल प्रयोग गरी कार्यशालाहरू सन्चालन गर्छ
र अनलाइन टेस्ट पास गर्नेलाई प्रमाणपत्र प्रदान गर्छ |
11:45 | विस्तृत जानकारीको लागि हामीलाई सम्पर्क गर्नुहोस् |
11:49 | समय सहितको तपाईका जिज्ञासाहरू यो फोरममा पोस्ट गर्नुहोला |
11:53 | स्पोकन ट्युटोरियल प्रोजेक्टलाई NMEICT, MHRD, भारत सरकारको अनुदान रहेको छ
यो मिसन सम्बन्धि थप जानकारी तलको लिंकमा उपलब्ध छ |
12:05 | यो ट्युटोरियलमा स्पोकन ट्युटोरियल प्रोजेक्ट टिमको योगदान रहेको छ
आइआइटि बम्बेको तर्फबाट म मन्दिरा बिदा हुँदै छु, सहभागिताको लागि धन्यवाद, नमस्कार |