Linux-AWK/C2/Built-in-Variables-in-awk/Nepali

From Script | Spoken-Tutorial
Revision as of 09:07, 13 July 2019 by Mandira (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
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, ALTT किहरू थिची टर्मिनल खोलौं
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 हो, तपाईले सही अनुमान गर्नुभयो- हामीले दुवै FSRS भेरिएबलहरू परिमार्जन गर्नुपर्छ
04:39 ट्युटोरियल रोकी यो कार्य गर्नुहोस्
04:43 अब, अन्य बिल्ट-इन् भेरिएबलहरू हेरौं
04:47 क्यापिटल NR ले awk ले प्रोसेस गरेको रेकर्डहरूको नम्बर दिन्छ
04:53 क्यापिटल NF ले हालको रेकर्डमा भएको फिल्डहरूको नम्बर दिन्छ
04:59 यसको लागि एउटा उदाहरण हेरौं

मानौं, हामी फाइलमा पूरा नभएका लाइनहरू हेर्न चाहन्छौं

05:07 यहाँ, पूरा नभएका लाइन भन्नाले सामान्य ६ फिल्डभन्दा कम फिल्ड भएको लाइन बुझिन्छ
05:13 टर्मिनल मा जाऊ र CtrlL किहरू प्रयोग गरी टर्मिनल क्लेअर गरौं
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.txtdemo2.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 मा ARGVENVIRON ले एरे प्रयोग गर्ने भएकोले, हामी तिनीहरूको बारेमा आगामी ट्युटोरियलमा हेर्ने छौं
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 आइआइटी बम्बेको तर्फबाट म मन्दिरा थापा बिदा हुँदै छु

सहभागिताको लागि धन्यवाद, नमस्कार

Contributors and Content Editors

Mandira