Linux-AWK/C2/Built-in-Variables-in-awk/Sanskrit
|
|
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 | पाठस्यास्य अनुवादकः प्रवाचकश्च श्री नवीनभट्टः उप्पिनपट्टणम् । धन्यवादाः । |