Linux-AWK/C2/MultiDimensional-Array-in-awk/Hindi

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 नमस्कार multidimensional arrays in awk पर स्पोकन ट्यूटोरियल में आपका स्वागत है।
00:07 इस ट्यूटोरियल में हम awk में multidimensional array बनाना और multidimensional array स्कैन करना सीखेंगे।
00:18 हम यह कुछ उदाहरणों के माध्यम से करेंगे।
00:21 इस ट्यूटोरियल को रिकॉर्ड करने के लिए, मैं उपयोग कर रही हूँ Ubuntu Linux 16.04 Operating System और gedit text editor 3.20.1
00:33 आप अपनी पसंद के किसी भी टेक्स्ट एडिटर का उपयोग कर सकते हैं।
00:37 इस ट्यूटोरियल का अभ्यास करने के लिए, आपको इस वेबसाइट पर array पर पिछले awk ट्यूटोरियल्स को देखना चाहिए।
00:45 आपको किसी भी प्रोग्रामिंग भाषा का बुनियादी ज्ञान होना चाहिए जैसे C या C++.
00:52 यदि नहीं, तो कृपया हमारी वेबसाइट पर समरूपी ट्यूटोरियल्स देखें।
00:58 इस ट्यूटोरियल में उपयोगित फाइल्स इस ट्यूटोरियल के पेज पर Code Files लिंक में उपलब्ध हैं। कृपया उन्हें डाउनलोड और एक्स्ट्रैक्ट करें।
01:08 awk में multidimensional array क्या है?
01:12 हम जानते हैं कि single dimensional arrays में single index द्वारा एक array element निर्धारित किया जाता है।
01:19 उदाहरणस्वरूप, array week सिंगल index, day द्वारा निर्धारित किया जाता है।
01:26 हालाँकि, multidimensional array में एक element मल्टिपल indices के क्रम द्वारा निर्धारित किया जाता है।
01:34 उदाहरणस्वरूप, two dimensional array element 2 indices के क्रम द्वारा निर्धारित किया जाता है।
01:42 यहाँ, multiple indices उनके बीच में separator के साथ सिंगल string में श्रृंखलित हैं।
01:50 separator built-in variable SUBSEP की वेल्यू है।
01:55 संयुक्त string का उपयोग सामान्य one dimensional array के लिए सिंगल index के रूप में किया जाता है।
02:01 उदाहरणस्वरूप, हम लिखते हैं multi square brackets में 4 comma 6 equal to value double quotes में
02:11 यहाँ multi multi-dimensional array का नाम है।

फिर, संख्याएं 4 और 6 string में बदल जाती हैं।

02:21 मान लीजिए, SUBSEP की वेल्यू hash symbol (#) है।
02:26 फिर वो संख्याएं उनके बीच में hash symbol (#) के साथ श्रृंखलित हो जाती है।
02:32 अतः, array element multi square brackets में double quotes में 4 hash 6 value double quotes में सेट हो जाता है।
02:43 SUBSEP की डिफाल्ट वेल्यू string double quotes में backslash 034 है।
02:50 वास्तव में यह nonprinting character है। यह ज्यादातर इनपुट डेटा में आमतौर पर दिखाई नहीं देगा।
02:58 स्लाइड में दिखाए गए अनुसार two dimensional array घोषित करते हैं।
03:03 रो 1 में दो elements A और B हैं।
03:08 रो 2 में दो elements C और D हैं।
03:12 Ctrl, Alt और T कीज दबाकर टर्मिनल खोलें।
03:17 cd command का उपयोग करके उस फोल्डर पर जाएं, जिसमें आपने Code Files डाउनलोड और एक्स्टैक्ट की है।
03:24 अब निम्न रूप से array का परिभाषित करें। यहाँ दिखाए गए अनुसार कमांड को ध्यानपूर्वक टाइप करें।फिर एंटर दबाएं।
03:35 हमें बिना किसी एरर के command prompt वापस मिलता है। अतः array परिभाषित हो गया है।
03:41 हमें कोई भी आउटपुट नहीं मिला है क्योंकि हमने कोड में कुछ भी प्रिंट करने के लिए नहीं दिया था।
03:47 print statement जोड़ते हैं।
03:50 टर्मिनल में पिछली निष्पादित कमांड प्राप्त करने के लिए अप ऐरो की दबाएं।
03:56 क्लोजिंग curly bracket के पहले, टाइप करें semicolon space print space a square brackets में 2 comma 2

कमांड निष्पादित करने के लिए एंटर दबाएं।

04:13 ध्यान दें, हमें आउटपुट capital D मिला है।
04:18 कैसे जाँचें यदि दिए गए multidimensional array में कोई विशिष्ट index sequence मौजूद है।
04:25 हम in operator का उपयोग कर सकते हैं।
04:28 हम यह इस श्रृंखला में पहले single-dimensional array में देख चुके हैं।
04:34 हमें indices के पूर्ण क्रम को, parentheses में और commas द्वारा पृथक, लिखना होगा।
04:42 इसे एक उदाहरण में देखते हैं।
04:45 मैंने test_multi.awk नामक स्क्रिप्ट पहले ही लिखी हुई है।
04:51 वह इस ट्यूटोरियल के पेज के Code Files लिंक में उपलब्ध है।
04:56 मैंने एक 2 by 2 array परिभाषित किया है, जैसा कि हमने पिछली चर्चा में देखा है।
05:02 फिर मैंने दो if conditions लिखे हैं।
05:06 पहली if condition जाँचती हैं कि क्या index one comma one में element मौजूद है या नहीं।
05:13 हमें multidimensional array के लिए parentheses में index लिखना होगा।
05:18 यदि condition true है, तो यह प्रिंट करेगा one comma one is present.
05:23 अन्य़था यह प्रिंट करेगा one comma one is absent
05:28 उसी तरह, हम index three comma one में element की मौजूदगी के लिए जाँच करेंगे। फाइल का निष्पादन करें।
05:36 टर्मिनल पर जाएं और टाइप करें awk space hyphen small f space test underscore multi dot awk और एंटर दबाएं।
05:49 आउटपुट दर्शाता है one comma one is present और three comma one is absent.
05:55 एक और उदाहरण देखते हैं।

मानिए, हम matrix का transpose बनाना चाहते हैं।

06:02 दिए गए matrix का transpose matrix की रोज और कॉलम्स को बदलकर बनाया जाता है।

हम यह कैसे कर सकते हैं?

06:11 मैंने फाइल 2D-array.txt में two-dimensional array matrix बनाया है।
06:19 मैंने transpose.awk नामक कोड लिखा है।
06:24 पहले इस awk script के action section में देखें।
06:29 यहाँ हम रो में फिल्ड्स की अधिकतम संख्या की गणना कर रहे हैं। और गणना की गई वेल्यू को variable max_nf में संचित कर रहे हैं।
06:40 जैसा कि हम जानते हैं, NR awk द्वारा प्रोसेस की गई वर्तमान रिकॉर्ड्स की संख्या है। NR की वेल्यू max_nr variable में संचित है।
06:50 Awk input file को पहले रिकॉर्ड से आखिरी रिकॉर्ड तक प्रोसेस करेगा।
06:56 जब 'awk पहले पहला रिकॉर्ड प्रोसेस करता है max_nr equal to 1' होगा।
07:03 दूसरे रिकॉर्ड को प्रोसेस करते समय max_nr 2 होगा और यह इसी तरह जारी रहेगा।
07:11 जब awk आखिरी रिकॉर्ड प्रोसेस करता है, max_nr रिकॉर्ड्स की कुल संख्या संचित करेगा।
07:19 अब हमें input file फाइल के डेटा रीड करना चाहिए और डेटा को two dimensional array में संचित करना चाहिए।
07:26 for loop में हमारे पास iterator variable x है।
07:31 x एक से NF तक बढ़ेगा और प्रत्येक पुनरावृति के बाद x 1 से बृद्धि करेगा।
07:39 x की प्रत्येक वेल्यू के लिए $x(dollar x) field x में वेल्यू दर्शाता है।
07:46 वह वेल्यू index NR comma x पर array matrix में संचित होगी।
07:53 उदाहरणस्वरूप, 1comma 1 का matrix वह वेल्यू संचित करता है, जो input file से index 1 comma 1 पर मौजूद है।
08:02 अतः इस कोड के साथ awk द्वारा पूर्ण input file को प्रोसेस करने के बाद matrix array पूर्ण रूप से बन जायेगा।
08:10 यह input file का पूर्ण डेटा two dimensional array फॉर्मेट में संचित करेगा।
08:16 अब END section में देखते हैं।
08:20 हमने matrix के transpose को प्रिंट करने के लिए nested for loop लिखा है।
08:25 मैं बुनियादी C programming के साथ आपके परिचय को मानती हूँ।

अतः मैं कोड के इस भाग को विस्तार में नहीं समझा रही हूँ।

08:34 कोड को विस्तार से देखने के लिए यहाँ विडियो रोकें और स्वयं समझें।
08:40 अब, हम सीखेंगे कि multidimensional array को स्कैन कैसे करें।
08:45 Awk में यथार्थ में multi-dimensional array नहीं है।
08:50 अतः यहाँ multidimensional array को स्कैन करने के लिए कोई विशेष for statement नहीं हो सकता है।
08:56 आपके पास array को स्कैन करने के लिए multidimensional तरीके हो सकते हैं।
09:00 आप इसके लिए split function के साथ for statement संयुक्त कर सकते हैं।
09:05 देखते हैं कि split function क्या है।

split function string को भागों में काटने या पृथक करने

09:14 और विभिन्न भागों को एक array में रखने के लिए उपयोगित है।
09:18 सिंटैक्स निम्न है। पहला argument पृथक होने वाली string रखता है।
09:25 दूसरा argument array का नाम निर्दिष्ट करता है, जहाँ split पृथक किए गए भागों को रखेगा।
09:33 तीसरा argument separator दर्शाता है जिसका उपयोग string को पृथक करने के लिए किया जायेगा।
09:39 पहला भाग arr 1 में संचित होता है।
09:43 दूसरा भाग arr 2 में संचित होता है और इत्यादि।
09:48 मान लीजिए, हम पहले बनाए गए array से indices के मूल क्रम को पुनः प्राप्त करना चाहते हैं। हम यह कैसे कर सकते हैं?
09:56 मैंने multi_scan.awk नामक कोड लिखा है।
10:02 पूरा कोड BEGIN section में लिखा है।
10:06 पहले हमने a नामक एक array बनाई और ये वेल्यू इसे असाइन किए।
10:12 फिर हमारे पास iterator के साथ for loop है।
10:16 iterator प्रत्येक iteration हेतु प्रत्येक indices values के लिए सेट होगा। मानिए 1,1 फिर 1,2 इत्यादि।
10:27 split function SUBSEP द्वारा पृथक iterator को भागों में तोड़ता है।
10:34 भाग array arr में संचित होंगे।
10:38 अतः, arr[1] और arr[2] क्रमशः पहला index और दूसरा index रखेगा। इस फाइल का निष्पादन करें।
10:48 टर्मिनल पर जाएं। टाइप करें awk space hyphen small f space multi underscore scan dot awk एंटर दबाएं।
11:01 आउटपुट देखें, indices का मूल क्रम पुनः प्राप्त हो गया है।
11:07 संक्षेप में। इस ट्यूटोरियल में हमने awk में multidimensional array बनाना और multidimensional array स्कैन करना सीखा।
11:18 नियत-कार्य के रूप में, two dimensional array को 90 डिग्री रोटेट करने और रोटेटेड matrix को प्रिंट करने के लिए एक awk script लिखें।
11:28 निम्नलिखित लिंक पर मौजूद वीडियो, स्पोकन ट्यूटोरियल प्रोजेक्ट को सारांशित करता है। कृपया इसे डाउनलोड करें और देखें।
11:36 स्पोकन ट्यूटोरियल प्रोजेक्ट टीम, स्पोकन ट्यूटोरियल्स का उपयोग करके कार्यशालाएँ आयोजित करती है और ऑनलाइन टेस्ट पास करने पर प्रमाणपत्र देती है।
11:45 अधिक जानकारी के लिए, कृपया हमें लिखें।
11:49 कृपया इस फोरम में अपनी समयबद्ध क्वेरी पोस्ट करें।
11:53 स्पोकन ट्यूटोरियल प्रोजेक्ट NMEICT, MHRD, भारत सरकार द्वारा वित्त पोषित है। इस मिशन पर अधिक जानकारी दिखाए गए लिंक पर उपलब्ध है।
12:05 यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद।

Contributors and Content Editors

Sakinashaikh