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

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 awk built-in variables and awk script इति पाठार्थं युष्माकं स्वागतम् ।
00:07 पाठेऽस्मिन् वयम् –

'बिळ्ट्-इन्-वेरियेबल्स्' अपि च awk स्क्रिप्ट्, इत्यनयोः विषयं ज्ञास्यामः ।

00:14 इदं कानिचन उदाहरणैः सह साधयाम ।
00:17 पाठमिदं रेकोर्ड्-कर्तुमहं  :

Ubuntu Linux 16.04 ओपरेटिङ्ग्-सिस्टम् अपि च

gedit टेक्स्ट्-एडिटर् 3.20.1 इतीमे उपयुञ्जे ।

00:30 पाठेऽस्मिन् उपयुक्ताः सञ्चिकाः, पृष्टेऽस्मिन् Code Files लिङ्क्-मध्ये उपलभ्यन्ते ।

कृपया तदवचित्य उपयुज्यताम् ।

00:40 अस्य टुटोरियल्-अभ्यासाय, भवन्तः अस्मिन् जालपुटे विद्यमानानि पूर्वतन awk टुटोरियल् पश्येयुः ।
00:47 न दृष्टं चेत् तत्सम्बद्धं टुटोरियल् अस्मिन् जालपुटे पश्यन्तु ।
00:52 आदौ, awk इत्यस्मिन्, कानिचन ‘बिळ्ट्-इन्-वेर्येबल्स्’ पश्याम ।
00:57 केपिटल् RS, इन्पुट्-सञ्चिकास्थं 'रेकोर्ड्-सपरेटर्' इतीदं सूचयति । उत्सर्गतया newline (न्यु-लैन्)वर्तते ।
01:07 केपिटल् FS इतीदम्, इन्पुट्-सञ्चिकास्थं ‘फील्ड्-सपरेटर्’ इतीदं सूचयति ।
01:13 उत्सर्गतया, FS इत्यस्य मूल्यं whitespace वर्तते ।
01:18 केपिटल् ORS इतीदं– ‘औट्पुट्-रेकोर्ड्-सपरेटर्’ इतीदं सूचयति ।

उत्सर्गतया इदं newline (न्युलैन्) वर्तते ।

01:27 केपिटल् OFSइतीदं, 'औटपुट्-फील्ड्-सपरेटर्' सूचयति । उत्सर्गतया whitespace वर्तते ।
01:36 एतेषु प्रत्येकस्य अर्थं ज्ञास्यामः ।
01:40 अधुना awkdemo सञ्चिकां पश्याम ।
01:44 वयमियम् awkdemo सञ्चिकां, awk कमाण्ड्-सह प्रोसेस्-करणकाले, इयमस्माकं 'इन्पुट्' सञ्चिका भविष्यति ।
01:51 पश्यतां यत्, newline केरेक्टर्-इत्यनेन सर्वाणि रेकोर्ड्स् पृथक्-क्रियन्ते ।
01:58 रेकोर्ड्-सपरेटर् RS वेरियेबल्-इत्यस्मै, newline इतीदं डीफोल्ट्-वेल्यू अस्ति ।

अतः किमपि कर्त्यव्यम् नास्ति ।

02:08 सर्वाणि फील्ड्स् 'पैप्' चिह्नेन पृथक्-कृतमिति अवलोकयन्तु ।

इदं विषयं awk इत्यस्मै कथं निवेदनीयमिति ज्ञास्यामः ।

02:18 उत्सर्गतया, स्पेसस् अपि च टेब्स् , पीळ्ड्-इतीमानि पृथक्-कुर्वन्ति ।
02:24 पूर्वतनपाठोक्तवत्, वयमिदं 'हैफन् केपिटल् F ' विकल्पस्य साहाय्येन रीसेट्-कर्तुं शक्नुमः ।
02:33 अथवा, BEGIN विभागे FS वेरियेबल् उपयुज्य, इदं रीसेट्-कर्तुं शक्नुमः ।
02:40 एकेन उदाहरणेन इदं कुर्मः ।

Rs. 5000 इत्यस्मादधिकं स्टैपण्ड् ये विद्यार्थिनः प्राप्नुवन्ति, तेषां नामानि मया अन्वेष्टव्यानि इति भावयामः ।

02:51 CTRL, ALT अपि च T कीलकानि युगपत् नोदनद्वारा, टर्मिनल् उद्घाटयन्तु ।
02:57 cd कमाण्ड् उपयुज्य भवन्तः, Code Files इतीदं डौन्लोड् तथा extract कृतं फोल्डर् प्रति गच्छन्तु ।
03:04 अत्र यथा दर्शितं तथा कमाण्ड्-टङ्कयन्तु ।
03:08 अत्र वयं, BEGIN विभागे, FS इत्यस्य मूल्यं pipe चिह्नमिति असैन् कृतवन्तः ।

एवमेव RS वेरियेबल् इतीदं परिवर्तितुं शक्नुमः ।

03:19 कमाण्ड्-एक्सिक्यूट् कर्तुं Enter नुदन्तु ।
03:23 Rs. 5000 इत्यस्मादधिकं स्टैपण्ड् यैः विद्यार्थिभिः प्राप्यन्ते, तेषाम् आवलिः दर्शिता ।
03:30 अत्र, name फील्ड् अथा stipend फील्ड् इतीमे, स्पेस्-द्वारा पृथक्-कृते ।
03:36 एवमेव, सर्वाणि रेकोर्ड्स् 'न्यूलैन् केरेक्टर्' द्वारा पृथक्-कृतानि ।
03:42 कोलन् इतीदं, ‘औट्पुट् फील्ड् सपरेटर्’ रूपेण अपि च ‘डबल् न्यू लैन्’ इतीदं, ‘औट्पुट् रेकोर्ड् सपरेटर्’ रूपेण आवश्यके इति कल्पयन्तु ।
03:52 कथमिदं करणीयमिति पश्यामः ।
03:55 'टर्मिनल्' मध्ये , पूर्वतन एक्सिक्यूटेड्-कमाण्ड् प्राप्तुं , 'अप्-एरो' कीलकं नुदन्तु ।
04:01 अत्र यथा दर्शितं तथा कमाण्ड् परिवर्त्य, Enter नुदन्तु ।
04:08 अस्माभिः अपेक्षित-फोर्मेट्-मध्ये एव फलितं प्राप्यते ।
04:12 अधुना, sample.txt इतीदं , अस्माकं नूतना ‘इन्पुट्-सञ्चिका’ इति वदाम ।
04:18 अवलोक्यतां यत्, अत्र न्यूलैन् इतीदं 'फील्ड् सपरेटर्' वर्तते, द्वे न्यूलैन्स् इतीमे ' रेकोर्ड् सपरेटर् ' वर्तेते ।
04:27 अनया सञ्चिकया, वयं roll no अपि च name इत्यनयोः वार्तां कथं प्राप्नुमः (extract)?
04:32 सत्यं, भवतां ऊहा । वयं FS तथा RS इत्यनयोः परिवर्तनं कुर्याम ।
04:39 ट्युटोरियल् इत्यस्मै विरामं दत्वा इदम् असैन्मेण्ट् कुर्वन्तु ।
04:43 वयमधुना अन्यानि ' बिल्ट-इन् वेरियेबल्स्' पश्याम ।
04:47 केपिटल् NR, awk द्वारा प्रोसेस्-कृतानि रेकोर्ड्स्-सङ्ख्यां (Number of Records) ददाति ।
04:53 केपिटल् NF, उपस्थिते रेकोर्ड्-मध्ये फील्ड्स्-सङ्ख्यां (Number of Fields) ददाति ।
04:59 अस्मिन् विषये एकमुदाहरणं पश्याम । अस्माभिः अस्यां सञ्चिकायां अपूर्णाः पङ्क्तीः शोधनीयाः इति कल्पयन्तु ।
05:07 अत्र, अपूर्णापङ्क्तिः इत्युक्ते , तया प्राप्तव्यात् 6फील्ड्स् इत्यस्मात् न्यूनमस्ति ।
05:13 'टर्मिनल्' इत्यस्मै परिवर्तयन्तु । Ctrl तथा L कीलके नुत्वा टर्मिनल् इतीदं रिक्तं करोमि ।
05:20 अत्र यथा दर्शितं तथा कमाण्ड् टङ्कयन्तु ।
05:24 फील्ड् इतीमानि 'पैप्' चिह्नेन पृथक्-कृतमित्यतः, BEGIN विभागे, FS इत्यस्य मौल्यं pipe चिह्नाय सेट् कुर्वन्तु ।
05:33 पश्चात् वयं NF not equal to 6 इति लिखितवन्तः ।
05:37 अस्यां पङ्क्त्यां फील्ड्स्-सङ्ख्या, 6 इत्यस्मै सममस्ति वा इति तत् परीक्षते ।
05:43 तत् true अस्ति चेत्, print विभागः रेकोर्ड् लैन् नम्बर् NR इतीदं, $0 इत्यनेन सूचितया पङ्क्त्या सह मुद्रापयति ।

Enter नुदन्तु ।

05:55 औट्-पुट् मध्ये , रेकोर्ड्-सङ्ख्या16 इतीदम्, अपूर्णं रेकोर्ड् वर्तते इति ज्ञायते ।

इदं 6-फील्ड्स् न; परन्तु 5-फील्ड्स् प्राप्तवदस्ति ।

06:05 अन्यमेकम् उदाहरणं पश्याम ।

कति फील्ड्स् सन्ति इतीदम् उपेक्षां कृत्वा, प्रत्येकाय विद्यार्थिने , आदिमम् अन्तिमञ्च फील्ड् कथं प्रिण्ट् करणीयम् ?

06:16 अत्र, 'टर्मिनल्' मध्ये यथादर्शितं तथा कमाण्ड् टङ्कयन्तु ।
06:21 वयमत्र , FS वेरियेबल् इत्यस्य सेट्-करणस्थाने , 'हैफन् केपिटल् एफ़् ' विकल्पस्योपयोगं कृतवन्तः ।

Enter नुदन्तु ।

06:30 सञ्चिकायां प्रत्येकस्य रेकोर्ड् इत्यस्य आदिमम् अन्तिमञ्च फील्ड् वयं प्राप्नुमः ।
06:36 वयमधुना अन्यमेकं प्रयत्नं कुर्मः ।
06:39 विद्यार्तिनां रेकोर्ड्स् इतीमानि demo1.txt अपि च demo2.txt इति सञ्चिकाद्वये विभाजितानि इति कल्पयाम ।
06:48 अनयोः सञ्चिकयोः आदिमाः 3(तिस्रः) पङ्क्तयः मुद्रापनीयाः । वयमिदं NR (एन् आर्) वेरियेबल् उपयुज्य कर्तुं शक्नुमः ।
06:57 द्वयोः सञ्चिकयोः विद्यमानाः विषयाः अत्र सन्ति ।
07:02 प्रत्येकस्यां सञ्चिकायां आदिमाः 3(तिस्रः) पङ्क्तीः दर्शयितुं , इमानि कमाण्ड्स् टर्मिनल् मध्ये टङ्कयन्तु ।
07:11 Enter नुदन्तु ।
07:13 फलितं, demo1.txt सञ्चिकास्थं आदिमं 3 रेकोर्ड्स् दर्शयति ।
07:20 द्वियीयायै सञ्चिकायै अपि वयं तत् कथं मुद्रापयितुं शक्नुमः ?
07:24 NR इत्यस्य स्थाने FNR इत्यस्योपयोगः अस्य उत्तरं वर्तते ।

FNR इतीदं, अस्यां सञ्चिकायां current record number वर्तते ।

07:34 प्रतिवारं, एकस्य रेकोर्ड्-पठनकाले , FNR (एफ़् एन् आर्) इतीदं वर्धयामः ।
07:39 प्रतिवारं, नूताना इन्पुट्-सञ्चिका यदा आरभ्यते तदा, इदं शून्याय इनिशियलैज़् कुर्मः ।
07:46 परन्तु NRइतीदं , प्रोग्रम् इत्यस्य एक्सिक्यूशन् इत्यस्य प्रारम्भानन्तरम्, awk प्रोसेस् कृतस्य इन्पुट् रेकोर्ड् सङ्ख्या वर्तते ।
07:55 नूतनया सञ्चिकया सह इदं शून्याय रीसेट् न करोति ।
07:59 टर्मिनल् प्रति आगच्छन्तु । पूर्वतन कमाण्ड् प्राप्तुं 'अप्-एरो' कीलकं नुदन्तु ।
08:06 पूर्वतन-कमाण्ड् इतीदम् एवं परिवर्तयन्तु ।

NR इत्यस्य स्थाने FNR इति टङ्कयन्तु ।

08:14 Print विभागे, NR पार्श्वे FNR इति टङ्कयित्वा,

Enter नुदन्तु ।

08:21 पश्यताम् यत्, अधुना अस्माभिः सम्यक् फलितं प्राप्यते ।

FNR (एफ़् एन् आर्) इतीदं नूतनसञ्चिकया सह शून्याय सेट् कृतम् । परन्तु NR (एन् आर्) वर्धिष्यते ।

08:31 अधुना वयं कानिचन ‘बिल्ट् इन् वेरियेबल्’ पश्याम ।

FILENAME वेरियेबल्, पठ्यमानायाः सञ्चिकायाः नाम ददाति ।

08:40 ARGC- कमाण्ड्-लैन् मध्ये दत्ताम् ओर्ग्युमेण्ट्-सङ्ख्यां द्योतयति ।
08:46 ARGV - कमाण्ड्-लैन्-आर्ग्युमेण्ट्स् इत्येतेषां, स्टोर्-क्रियमाणं 'अरे' इतीदं द्योतयति ।
08:52 ENVIRON (एन्विरोन्)- ‘शेल् एन्विरोन्मेण्ट् वेरियेबल्स्’ अपि च तेषां मौल्यानां 'अरे' इतीदं द्योतयति ।
09:00 ARGV अपि च ENVIRON इत्येते, awk मध्ये 'अरे' इतीदं उपयुज्येते इत्यतः आगामिपाठेषु पश्याम ।
09:09 वयमधुना FILENAME इति वेरियेबल् पश्याम ।

अधुना प्रोसेस् जायमानं सञ्चिकानाम कथं प्रिण्ट्-क्रियते अस्माभिः ?

09:18 टर्मिनल् गत्वा अत्र दर्शितानि कमाण्ड्स् टङ्कयन्तु ।
09:23 वयमत्र 'स्पेस्' इतीदं, ‘स्ट्रिङ् कङ्केटिनेशन् ओपरेटर्’ रूपेण उपयुक्तवन्तः ।

कमाण्ड् एक्सिक्यूट्-कर्तुं , Enter नुदन्तु ।

09:32 ‘इन्पुट् फैल्’नाम बहुवारं फलितं दर्शयति ।
09:37 यतो हि इदं कमाण्ड्, awkdemo.txt सञ्चिकायाः प्रत्येकस्यै पङ्क्त्यै, एकवारं फैल्-नेम् मुद्रापयति ।

कथमिदं वयम् एकवारं मुद्रापयितुं शक्नुमः?

09:48 'टर्मिनल्' इतीदं रिक्तं कुर्वन्तु ।

पूर्वतन कमाण्ड् प्राप्तुं , 'अप्-एरो' कीलकं नुदन्तु ।

09:55 अत्र यथा दर्शितं तथा कमाण्ड्स् परिवर्तयन्तु ।

Enter नुदन्तु ।

10:02 वयमधुना फैल्-नेम् इतीदं केवलम् एकवारं प्राप्नुमः ।
10:06 awk मध्ये इतोप्यधिकानि ‘बिल्ट् इन् वेरियेबल्स्’ सन्ति ।

तेषामधिकं ज्ञानम् अन्तर्जालात् प्राप्नुवन्तु ।

10:14 उत्तीर्णान् अपि च Rs.8000 इत्यस्मादधिकं स्टैपण्ड्-प्राप्तान् छात्रान् शोधनमवश्यकम् इति भावयाम ।
10:22 कोमा इतीदम्, 'औट्पुट् फील्ड् सपरेटर्' रूपेण उपयुज्यताम् । footer विभागे, “The data is shown for file” इति अपि च फैल्नेम् मुद्रापयन्तु ।

कथमिदं कर्तुं शक्यते ?

10:36 'टर्मिनल्' मध्ये, इमानि कमाण्ड्स् टङ्कयित्वा , Enter नुदन्तु ।
10:43 वयं जानीमः यत्, एकैव छात्रः उत्तीर्णो भूत्वा , Rs. 8000 इत्यस्मादधिकं स्टैपण्ड् प्राप्नोति । रेकोर्ड् सङ्ख्या च 2 वर्तते ।
10:53 अभीष्टानुसारं वयं, सञ्चिकानाम footer स्थाने पश्यामः ।
10:58 वयं awk इत्यस्योपयोगं जटिलकार्यार्थमपि कर्तुं शक्नुमः ।
11:03 तत्सन्दर्भे, प्रतिवारं टर्मिनल् मध्ये कमाण्ड्-लेखनं कष्टाय भवति ।
11:09 तदर्थं, awk प्रोग्राम-इतीदम् प्रत्येकसञ्चिकायां लेखनं वरम् ।
11:14 एक्सिक्यूट् भवितुं, सा सञ्चिका dot awk एक्स्टेन्शन्-युता (extension) स्यात् ।
11:19 एक्सिक्यूट्-काले, वयं awk कमाण्ड्-इत्यनेन सह, अस्य awk प्रोग्राम्-सञ्चिका-नाम दातुं शक्नुमः ।
11:26 एवं कर्तुं अस्माभिः hyphen small f विकल्पः उपयोक्तव्यः । एकम् उदाहरणं पश्याम ।
11:35 अहमेकं awk प्रोग्राम् लिखितवानस्मि । तं prog1 dot awk इति रक्षितवानस्मि ।
11:42 इदं कोड्, Code Files लिङ्क्-मध्येऽपि उपलभ्योऽस्ति ।
11:46 टर्मिनल् आगच्छतु ।

अन्ते एक्सिक्यूट्-कृते कमाण्ड्-इत्यस्य ‘सिङ्गल्-कोट्स्’ मध्ये किम् लिखितमिति पश्यन्तु ।

11:55 Prog1.awk सञ्चिकायामपि तदेवास्ति ।
12:00 भेदः अस्ति यत्, awk सञ्चिकायां, वयं सिङ्गल्-कोट्स्-मध्ये न लिखितवन्तः ।
12:07 फैल्-एक्सिक्यूट्-कर्तुं टर्मिनल् मध्ये एवं टङ्कयन्तु -

awk space hyphen small f space prog1.awk space awkdemo.txt अपि च Enter नुदन्तु ।

12:24 वयं पूर्ववत् फलितं प्राप्नुमः ।
12:29 एवं भवन्तः awk प्रोग्राम् लिखित्वा बहुवारम् उपयोक्तुमर्हन्ति ।
12:35 वयं पाठस्यान्तमागतवन्तः ।

सङ्क्षेपेण,

12:40 पाठेऽस्मिन् वयम् नाना उदाहरणानि उपयुज्य, ‘बिल्ट्-इन् वेरियेबल्स्’ अपि च awk स्क्रिप्ट्-लेखनञ्च ज्ञातवन्तः ।
12:48 एकं पाठनियोजनम् -

awkdemo.txt सञ्चिकायां, पञ्चम्याः पङ्क्त्याः फील्ड् मुद्रापयितुं awk स्क्रिप्ट् लिखन्तु ।

12:58 टर्मिनल् इत्यस्योपरि, /etc/passwd इदं सिस्टम्-फैल् उद्घाटयन्तु ।
13:05 तत्रत्यानि सर्वाणि ‘सपरेटर्स्’ अन्विष्यताम् ।
13:09 अधुना, 20तमायाः पङ्क्याः फैल्-प्रोसेस्-कर्तुं , 'स्क्रिप्ट्' लिखन्तु ।
13:15 अत्रापि, 6तः अधिकं फील्ड्-युतां पङ्क्तीः एव ।
13:20 लैन-नम्बर्, पूर्णा पङ्क्तिः, तस्यां पङ्क्त्यां विद्यमाना फील्ड्-सङ्ख्या च मुद्रापणीयाः ।
13:28 पर्चन्याम् विद्यमानं विडियो, “spoken tutorial” प्रकल्पस्य सारं दर्शयति । तदवचित्य पश्यन्तु ।
13:36 “spoken tutorial” प्रकल्पगणः, इमान् पाठान् उपयुज्य कार्यशालां चालयति । उत्तीर्णेभ्यः प्रमाणपत्रं ददाति । अधिकविवरणार्थम् अस्मभ्यं लिखन्तु ।
13:47 भवतां प्रश्नान् मिनिट् सेकेण्ड् इत्यनयोः सह फोरं मध्ये लिखन्तु ।
13:51 "Spoken Tutorial" प्रकल्पः, NMEICT, MHRD द्वारा भारतसर्वकारस्य अनुदानं प्राप्तवान् अस्ति । अधिकविवरणं अस्यां पर्चन्याम् उपलभ्यते ।
14:03 पाठस्यास्य अनुवादकः प्रवाचकश्च श्री नवीनभट्टः उप्पिनपट्टणम् । धन्यवादाः ।

Contributors and Content Editors

NaveenBhat, Sandhya.np14