Linux-AWK/C2/MultiDimensional-Array-in-awk/Hindi
From Script | Spoken-Tutorial
|
|
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 | यह स्क्रिप्ट विकास द्वारा अनुवादित है। मैं जया अब आपसे विदा लेती हूँ। हमसे जुडने के लिए धन्यवाद। |