Linux-AWK/C2/Built-in-Variables-in-awk/Nepali
|
|
00:01 | awk बिल्ट-इन् भेरिएबलहरू र awk स्क्रिप्ट स्पोकन ट्युटोरियल मा तपाईलाई स्वागत छ |
00:07 | यो ट्युटोरियलमा, हामी यी कुराहरू सिक्ने छौं: बिल्ट-इन् भेरिएबलहरू र awk स्क्रिप्ट |
00:14 | यसको लागि हामी केही उदाहरणहरू प्रयोग गर्ने छौं |
00:17 | यो ट्युटोरियल रेकर्ड गर्न, म उबुन्टु लिनक्स १६.०४ अपरेटिंग सिस्टम र gedit टेक्स्ट एडिटर ३.२०.१ प्रयोग गर्द छु |
00:30 | यो ट्युटोरियलमा प्रयोग गरिएका फाइलहरू यो पेजको Code Files लिङ्कमा उपलब्ध छन्
कृपया डाउनलोड गरि प्रयोग गर्नुहोला |
00:40 | यो ट्युटोरियल अभ्यास गर्न, तपाईले यो वेबसाइटका अघिल्ला awk ट्युटोरियलहरू हेरेको हुनुपर्छ |
00:47 | अन्यथा, कृपया यो वेबसाइटको सम्बन्धित ट्युटोरियल हेर्नुहोस् |
00:52 | पहिले, awk का केही बिल्ट-इन् भेरिएबलहरू हेरौं |
00:57 | क्यापिटल RS ले एउटा इन्पुट फाइलको record separator जनाउँछ , डिफल्टमा, यो newline हुन्छ |
01:07 | क्यापिटल FS ले इन्पुट फाइलको field separator जनाउँछ |
01:13 | डिफल्टमा, FS को मानमा एउटा whitespace हुन्छ |
01:18 | क्यापिटल ORS ले output record separator जनाउँछ
डिफल्टमा, यो newline हुन्छ |
01:27 | क्यापिटल OFS ले output field separator बुझाउँछ
डिफल्टमा, यो एउटा whitespace हुन्छ |
01:36 | अब यिनीहरूको मतलब बुझौं |
01:40 | अब, awkdemo फाइलमा हेरौं |
01:44 | हामीले यो awkdemo फाइललाई awk कमाण्ड प्रयोग गरी प्रोसेस गर्दा, यो हाम्रो इन्पुट फाइल बन्ने छ |
01:51 | याद गरौं : न्यूलाइन क्यारेक्टर ले सबै रेकर्डहरूलाई एक-अर्काबाट छुट्ट्याएको छ |
01:58 | newline - record separator RS variable को डिफल्ट मान हो
त्यसैले, हामीले केही पनि गर्नु पर्दैन |
02:08 | याद गरौं: यहाँ सबै फिल्डहरूलाई पाइप चिन्ह ले छुट्ट्याएको छ
हामी यसको बारेमा awk लाई कसरी जानकारी दिन सक्छौं त? ल, हेरौं |
02:18 | डिफल्टमा, कुनै पनि स्पेस वा ट्याब हरूले फिल्ड छुट्टयाउने छ |
02:24 | हामी यसलाई अघिल्लो ट्युटोरियलमा सिके अनुसार हाइफन क्यापिटल F विकल्प प्रयोग गरी रिसेट गर्न सक्छौं |
02:33 | अथवा, हामी यसलाई FS भेरिएबल प्रयोग गरी BEGIN सेक्सन मा रिसेट गर्न सक्छौं |
02:40 | एउटा उदाहरण हेरौं
मानौं, म रू. ५००० भन्दा बढि भत्ता पाउने बिद्यार्थीहरू खोज्न चाहन्छु |
02:51 | CTRL, ALT र T किहरू थिची टर्मिनल खोलौं |
02:57 | cd command प्रयोग गरी Code Files डाउनलोड गरिएको फोल्डरमा जाऊ |
03:04 | यहाँ देखाए झैँ कमाण्ड टाइप गरौं |
03:08 | यहाँ, BEGIN सेक्सनमा, हामीले FS को मानमा एउटा पाइप चिन्ह राखेका छौं
यसैगरी हामी, RS भेरिएबल पनि बदल्न सक्छौं |
03:19 | कमाण्ड एक्जिक्युट गर्न एन्टर थिचौं |
03:23 | आउटपुटमा रू. ५००० भन्दा बढि भत्ता प्राप्त गर्ने बिद्यार्थीहरूको सूची देख्न सकिन्छ |
03:30 | यहाँ, name फिल्ड र stipend फिल्डलाई एउटा खाली स्पेस ले छुट्ट्याएको छ |
03:36 | साथै, सबै रेकर्डहरूलाई एउटा newline character ले छुट्ट्याएको छ |
03:42 | मानौं, हामी कोलन लाई output field separator बनाउन चाहन्छौं
र दोहोरो newline लाई output record separator बनाउन चाहन्छौं |
03:52 | के हामी यसो गर्न सक्छौं ? ल हेरौं |
03:55 | टर्मिनल मा पहिले एक्जिक्युट गरेको कमाण्ड प्राप्त गर्न अप एरो कि थिचौं |
04:01 | कमाण्डलाई यहाँ देखाए झैँ बदलौं
र एन्टर थिचौं |
04:08 | हामीले चाहेको फर्म्याटमा आउटपुट पाउँछौं |
04:12 | अब, मानौं हाम्रो नयाँ इन्पुट फाइल sample.txt हो |
04:18 | यहाँ हाम्रो field separator -newline र record separator दोहोरो newline रहेको याद गरौं |
04:27 | अब हामी यो फाइलमा रहेको रोल नं. र नामको जानकारी कसरी निकाल्न सक्छौं त |
04:32 | हो, तपाईले सही अनुमान गर्नुभयो- हामीले दुवै FS र RS भेरिएबलहरू परिमार्जन गर्नुपर्छ |
04:39 | ट्युटोरियल रोकी यो कार्य गर्नुहोस् |
04:43 | अब, अन्य बिल्ट-इन् भेरिएबलहरू हेरौं |
04:47 | क्यापिटल NR ले awk ले प्रोसेस गरेको रेकर्डहरूको नम्बर दिन्छ |
04:53 | क्यापिटल NF ले हालको रेकर्डमा भएको फिल्डहरूको नम्बर दिन्छ |
04:59 | यसको लागि एउटा उदाहरण हेरौं
मानौं, हामी फाइलमा पूरा नभएका लाइनहरू हेर्न चाहन्छौं |
05:07 | यहाँ, पूरा नभएका लाइन भन्नाले सामान्य ६ फिल्डभन्दा कम फिल्ड भएको लाइन बुझिन्छ |
05:13 | टर्मिनल मा जाऊ र Ctrl र L किहरू प्रयोग गरी टर्मिनल क्लेअर गरौं |
05:20 | देखाइएको कमाण्ड टाइप गरौं |
05:24 | फिल्डहरू पाइप चिन्हले छुट्टयाएको हुनाले , BEGIN सेक्सन मा FS को मानमा पाइप चिन्ह राखौं |
05:33 | अर्को, हामीले NF not equal to 6 लेखेका छौं |
05:37 | यसले हालको लाइनको फिल्ड संख्या ६ बराबर छैन कि जाँच्ने छ |
05:43 | यो सही भएमा , प्रिन्ट सेक्सन ले रेकर्ड लाइन नम्बर NR को साथै $0ले जनाउने सम्पूर्ण लाइन प्रिन्ट गर्ने छ
एन्टर थिचौं |
05:55 | आउटपुटमा , हामी पूरा नभएको रेकर्ड नम्बर 16 देख्न सक्छौं
यसमा ६ को सट्टा ५ फिल्डहरू मात्र छन् |
06:05 | एउटा उदाहरण हेरौं
हामी कसरी भिन्न फिल्ड संख्या बाबजूद प्रत्येक बिद्यार्थीको पहिलो र अन्तिम फिल्ड प्रिन्ट गर्न सक्छौं त ? |
06:16 | टर्मिनल मा यहाँ देखाए झैँ कमाण्ड टाइप गरौं |
06:21 | यहाँ हामीले FS भेरिएबल को सट्टामा हाइफन क्यापिटल F विकल्प प्रयोग गरेका छौं
एन्टर थिचौं |
06:30 | हामीले फाइलको प्रत्येक रेकर्डको पहिलो र अन्तिम फिल्ड मात्र प्राप्त गरेका छौं |
06:36 | अब, थप केही गरौं |
06:39 | मानौं, बिद्यार्थीहरूको रेकर्ड दुई फाइलहरू demo1.txt र demo2.txt मा रहेको छ |
06:48 | अब, हामी यी दुवै फाइलहरूको पहिलो ३ लाइनहरू प्रिन्ट गर्न चाहन्छौं
यसको लागि, हामी NR भेरिएबल प्रयोग गर्न सक्छौं |
06:57 | यहाँ दुई फाइलहरूको सामग्री रहेको छ |
07:02 | अब प्रत्येक फाइलको पहिलो ३ लाइनहरू डिस्प्ले गर्न, टर्मिनल मा तलको कमाण्ड टाइप गरौं |
07:11 | एन्टर थिचौं |
07:13 | आउटपुटमा demo1.txt फाइलको पहिलो ३ लाइनहरू मात्र देखिन्छ |
07:20 | हामी कसरी दोस्रो फाइलको लागि पनि सोही कार्य गर्न सक्छौं ? |
07:24 | यसको लागि NR को सट्टामा FNR प्रयोग गर्नुपर्छ
FNR हालको फाइलको करेन्ट रेकर्ड नम्बर हो |
07:34 | प्रत्येक पटक एउटा नयाँ रेकर्ड भेट्दा FNR को मान बढ्ने छ |
07:39 | प्रत्येक पटक नयाँ इन्पुट फाइल सुरु गर्दा यो शून्यमा सुरु हुन्छ |
07:46 | तर NR प्रोग्राम एक्जिक्युट हुन सुरु भएदेखि awk ले प्रोसेस गरेको इन्पुट रेकर्डको नम्बर हो |
07:55 | यो नयाँ फाइलको लागि शून्यबाट सुरु हुँदैन |
07:59 | टर्मिनल मा जाऊ
पहिले एक्जिक्युट गरेको कमाण्ड प्राप्त गर्न अप एरो कि थिचौं |
08:06 | अघिल्लो कमाण्डलाई यस अनुसार बदलौं
NR को सट्टामा FNR टाइप गरौं |
08:14 | Print सेक्सन मा NR, सँगै FNR टाइप गरौं , एन्टर थिचौं |
08:21 | हामीले अहिले सही आउटपुट प्राप्त गरेका छौं
नयाँ फाइलको लागि FNR शून्यबाट सुरु हुन्छ तर NR बढिरहन्छ |
08:31 | अब अन्य केही बिल्ट-इन् भेरिएबलहरू को बारेमा जानौं
FILENAME भेरिएबलले हाल रिड भईरहेको फाइलको नाम दिन्छ |
08:40 | ARGC ले कमाण्ड लाइन मा दिएको आर्गुमेंटहरू को संख्या दिन्छ |
08:46 | ARGV ले कमाण्ड लाइन आर्गुमेंटहरू भण्डार गर्ने अरे जनाउँछ |
08:52 | ENVIRON ले shell environment variable को अरे र सम्बन्धित मानहरू जनाउँछ |
09:00 | awk मा ARGV र ENVIRON ले अरे प्रयोग गर्ने भएकोले, हामी तिनीहरूको बारेमा आगामी ट्युटोरियलमा हेर्ने छौं |
09:09 | अब, FILENAME भेरिएबलको बारेमा बुझौं
हामीले अहिले प्रोसेस भईरहेको फाइलको नाम कसरी प्रिन्ट गर्न सक्छौं ? |
09:18 | टर्मिनल मा जाऊ र देखाइएको कमाण्ड टाइप गरौं |
09:23 | यहाँ हामीले स्ट्रिंग जोड्ने अपरेटर को रूपमा स्पेस प्रयोग गरेका छौं
कमाण्ड एक्जिक्युट गर्न एन्टर थिचौं |
09:32 | आउटपुटमा इन्पुट फाइलनेम धेरै पटक देखिन्छ |
09:37 | यो किनभने यो कमाण्डले awkdemo.txt फाइलको प्रत्येक लाइनको लागि एकपटक फाइलको नाम प्रिन्ट गर्छ
अब यसलाई कसरी एकपटक मात्र प्रिन्ट गर्न सक्छौं त? |
09:48 | टर्मिनल क्लियर गरौं
अघिल्लो कमाण्ड प्राप्त गर्न अप एरो कि थिचौं |
09:55 | यहाँ देखाए झैँ गरी अघिल्लो कमाण्ड बदलौं
एन्टर थिचौं |
10:02 | अब, हामीले एकपटक मात्र फाइलको नाम पाएका छौं |
10:06 | awk मा अन्य केही बिल्ट-इन् भेरिएबल हरू रहेका छन्
तिनीहरूको जानकारीको लागि इन्टरनेट प्रयोग गर्नुहोला |
10:14 | मानौं, हामी यस्ता बिद्यार्थीहरू खोज्न चाहन्छौं जो उत्तीर्ण भएका छन् र उनीहरूको भत्ता रू. ८००० भन्दा बढि छ |
10:22 | कमा लाई output field separator को रूपमा प्रयोग गरौं र “The data is shown for file” र फाइलको नाम फूटर सेक्सन मा प्रिन्ट गरौँ
यसो कसरी गर्न सकिन्छ ? |
10:36 | टर्मिनल मा तलको कमाण्ड टाइप गरौं
एन्टर थिचौं |
10:43 | हामी रू. ८००० भन्दा बढि भत्ता पाउने एकजना मात्र बिद्यार्थी उत्तीर्ण भएको देख्न सक्छौं
र रेकर्ड नम्बर 2 रहेको छ |
10:53 | हामीले चाहे जस्तै, फाइलको नाम फूटर मा देख्न सक्छौं |
10:58 | हामी awk लाई अझ धेरै जटिल कार्यमा प्रयोग गर्न सक्छौं |
11:03 | त्यस्तो अवस्थामा, कमाण्डहरू प्रत्येक पटक टर्मिनल मा लेख्न अप्ठेरो हुन्छ |
11:09 | यसको सट्टा हामी एउटा छुट्टै awk प्रोग्राम लेख्न सक्छौं |
11:14 | फाइल एक्जिक्युट गर्न, सो फाइलको एक्सटेन्सन डट awk हुनुपर्छ |
11:19 | एक्जिक्युट गर्दा , हामी यो awk प्रोग्राम फाइलको नाम awk कमाण्ड मा उल्लेख गर्न सक्छौं |
11:26 | यस्तो गर्न, हामीले हाइफन सानो f विकल्प प्रयोग गर्नुपर्ने हुन्छ
एउटा उदाहरण हेरौं |
11:35 | मैले पहिले नै एउटा awk प्रोग्राम लेखेर prog1 डट awk मा सेभ गरेकी छु |
11:42 | यो कोड पनि Code Files लिङ्कमा उपलब्ध छ |
11:46 | टर्मिनल मा जाऊ
हामीले यो भन्दा पहिले एक्जिक्युट गरेको कमाण्ड को उद्दरण भित्र के लेखेका छौं त ? |
11:55 | prog1.awk फाइलमा ठ्याक्क त्यही रहेको छ |
12:00 | एउटा मात्र फरक भनेको awk फाइलमा , हामीले उद्दरण भित्र लेखेका छैनौं |
12:07 | यो फाइल एक्जिक्युट गर्न, टर्मिनल मा तलको कमाण्ड टाइप गरौं-
awk स्पेस फाईफन सानो f स्पेस prog1.awk स्पेस awkdemo.txt र एन्टर थिचौं |
12:24 | हामीले ठ्याक्कै पहिले देखे कै आउटपुट प्राप्त गरेका छौं |
12:29 | यसरी, हामी awk प्रोग्रामहरू लेख्न र बारम्बार प्रयोग गर्न सक्छौं |
12:35 | यसरी हामी यो ट्युटोरियलको अन्त्यमा आएका छौं
संक्षेपमा हेरौं |
12:40 | यो ट्युटोरियलमा हामीले विभिन्न उदाहरणहरू प्रयोग गरी यी कुराहरू सिक्यौं - बिल्ट-इन् भेरिएबलहरू
awk स्क्रिप्ट |
12:48 | कार्यमा - awkdemo.txt फाइलको पाँचौं लाइनको अन्तिम फिल्ड प्रिन्ट गर्न एउटा awk स्क्रिप्ट लेख्नुहोस् |
12:58 | टर्मिनल मा सिस्टम फाइल /etc/passwd खोल्नुहोस् |
13:05 | त्यहाँ भएका सम्पूर्ण सेपरेटरहरू पहिचान गर्नुहोस् |
13:09 | अब, फाइलको बीसौं लाइन माथिबाट प्रोसेस गर्न एउटा स्क्रिप्ट लेख्नुहोस् |
13:15 | यो ६ वटा भन्दा बढि फिल्ड भएका लाइनहरूमा मात्र गर्नुपर्ने हुन्छ |
13:20 | तपाईले त्यो लाइनको लाइन नम्बर, सम्पूर्ण लाइन र फिल्डहरू को संख्या प्रिन्ट गर्नुपर्छ |
13:28 | तलको लिङ्कमा उपलब्ध भिडियोले स्पोकन ट्युटोरियल प्रोजेक्टको सार दिन्छ
कृपया यसलाई डाउनलोड गरी हेर्नुहोला |
13:36 | स्पोकन ट्युटोरियल प्रोजेक्ट टिमले स्पोकन ट्युटोरियलहरू प्रयोग गरी कार्यशालाहरू संचालन गर्छ
र प्रमाणपत्र प्रदान गर्छ विस्तृत जानकारीको लागि हामीलाई सम्पर्क गर्नुहोस् |
13:47 | कृपया, जिज्ञासा रहेको स्थानको समय सहित यो फोरममा पोस्ट गर्नुहोला |
13:51 | स्पोकन ट्युटोरियल प्रोजेक्टलाई NMEICT, MHRD, भारत सरकारको अनुदान रहेको छ
यस सम्बन्धि थप जानकारी तलको लिङ्कमा उपलब्ध छ |
14:03 | आइआइटी बम्बेको तर्फबाट म मन्दिरा थापा बिदा हुँदै छु
सहभागिताको लागि धन्यवाद, नमस्कार |