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

From Script | Spoken-Tutorial
Revision as of 22:54, 6 July 2019 by Bharat636 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 નમસ્તે, awk માં multidimensional arrays બનાવવા પરના સ્પોકન ટ્યુટોરીયલમાં સ્વાગત છે.
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 માં, array element એ એકલ index દ્વારા ઓળખાય છે.
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 separatorbuilt-in variable SUBSEP ની વેલ્યુ છે.
01:55 સરળ one dimensional array માટે સંયુક્ત string એ એકલ index તરીકે વપરાય છે.
02:01 ઉદાહરણ તરીકે, ધારો કે આપણે લખીએ છીએ multi within square brackets 4 comma 6 equal to value in 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 within square brackets within double quotes 4 hash 6 value within double quotes પર સેટ થાય છે.
02:43 SUBSEP ની મૂળભૂત વેલ્યુ છે string within 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 કી દાબીને terminal ખોલો.
03:17 cd command નો ઉપયોગ કરીને એ ફોલ્ડરમાં જાવ જ્યાં તમે Code Files ડાઉનલોડ કરી છે અને એક્સટ્રેકટ કરી છે.
03:24 હવે array ને આ પ્રમાણે વ્યાખ્યાયિત કરો. અહીં દર્શાવ્યા પ્રમાણે કમાન્ડને કાળજીપૂર્વક ટાઈપ કરો.

ત્યારબાદ Enter દબાવો.

03:35 આપણને command prompt પાછું કોઈપણ error વિના મળે છે.

તો, array વ્યાખ્યાયિત થઇ ગયો છે.

03:41 આપણને કોઈપણ આઉટપુટ મળતું નથી કારણ કે આપણે કોડમાં કંઈપણ પ્રિન્ટ કરવા આપ્યું નથી.
03:47 ચાલો print statement ઉમેરીએ.
03:50 terminal માં પાછલા એક્ઝિક્યુટેડ કમાન્ડને મેળવવા હેતુ અપ એરો કી દબાવો.
03:56 બંધ curly bracket ના સેજ પહેલા, ટાઈપ કરો semicolon સ્પેસ print space a within square brackets 2 comma 2

કમાન્ડને એક્ઝિક્યુટ કરવા માટે Enter દબાવો.

04:13 નોંધ લો, આપણને આઉટપુટ capital D તરીકે મળે છે.
04:18 કેવી રીતે તપાસ કરવું છે કે એક ચોક્કસ index sequence એ આપેલ multidimensional array માં મોજૂદ છે કે નહિ?
04:25 આપણે in operator વાપરી શકીએ છીએ.
04:28 આપણે તેને અગાઉ આ શ્રેણીમાના single-dimensional array માં પહેલાથી જોઈ ચુક્યા છીએ.
04:34 આપણે indices ની સમગ્ર sequence 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 માટે index parentheses અંતર્ગત લખવી પડશે.
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 terminal પર જાવ અને ટાઈપ કરો awk space hyphen small f space test underscore multi dot awk અને Enter દબાવો.
05:49 આઉટપુટ દર્શાવે છે one comma one is present અને three comma one is absent.
05:55 ચાલો વધુ એક ઉદાહરણ લઈએ.

માનો કે, આપણે એક matrix નું transpose બનાવવું છે.

06:02 આપેલ matrix ના transpose ને matrix ની rows અને columns અદલાબદલી કરીને બનાવવામાં આવે છે.

આપણે આ કેવી રીતે કરી શકીએ?

06:11 મેં ફાઈલ 2D-array.txt માં એક two-dimensional array matrix બનાવ્યો છે.
06:19 મેં transpose.awk નામનો કોડ લખ્યો છે.
06:24 પહેલા આ awk script ના action section પર નજર ફેરવો.
06:29 અહીં આપણે એક row માં મહત્તમ fields સંખ્યા ગણતરી કરી રહ્યા છીએ.

અને ગણતરી કરેલ વેલ્યુને variable max_nf માં સંગ્રહી છે.

06:40 જેવું કે આપણે જાણીએ છીએ, NR awk દ્વારા પ્રોસેસ કરાયેલ વર્તમાન records સંખ્યા છે.

NR ની વેલ્યુ max_nr variable માં સંગ્રહાય છે.

06:50 Awk input file પહેલા record થી છેલ્લા record સુધી પ્રોસેસ કરશે.
06:56 જ્યારે awk પહેલું record પ્રોસેસ કરે છે, max_nr 1 ના બરાબર રહેશે.
07:03 બીજું record પ્રોસેસ કરતી વખતે, max_nr 2 રહેશે અને તે આ પ્રમાણે ચાલુ રહેશે.
07:11 જ્યારે awk છેલ્લો record પ્રોસેસ કરે છે, max_nr કુલ records સંખ્યા સંગ્રહિત કરશે.
07:19 હવે આપણે input file થી ડેટા વાંચવો જોઈએ અને ડેટાને two dimensional array માં સંગ્રહવો જોઈએ.
07:26 for loop અંતર્ગત, આપણી પાસે છે iterator variable x.
07:31 x એ એકથી NF ટ્રાવર્સ કરશે, અને x એ દરેક iteration બાદ 1 થી વધશે.
07:39 x ની દરેક વેલ્યુ માટે, $x(dollar x) field x પર વેલ્યુ રજુ કરે છે.
07:46 વેલ્યુ index NR comma x પર array matrix માં સંગ્રહિત થશે.
07:53 ઉદાહરણ તરીકે, matrix of 1 comma 1 એ વેલ્યુ સંગ્રહિત કરશે જે input file માંથી index 1 comma 1 પર મોજૂદ છે.
08:02 તો, આ કોડ સાથે સમગ્ર input file ને awk પ્રોસેસ કરે તે પછી, 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 સાચા અર્થે Awkmulti-dimensional array ધરાવતું નથી.
08:50 તેથી, multidimensional array ને સ્કેન કરવા માટે અહીં કોઈ વિશેષ for statement હોઈ શકતું નથી.
08:56 તમારી પાસે array ને સ્કેન કરવાની multidimensional રીતો હોઈ શકે છે.
09:00 આ માટે તમે for statement ને split function સાથે જોડી શકો છો.
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 iterator ને SUBSEP દ્વારા જુદું પાડીને ટુકડાઓમાં વિભાજન કરે છે.
10:34 ટુકડાઓ array arr માં સંગ્રહિત થશે.
10:38 તો, arr[1] અને arr[2] અનુક્રમે પ્રથમ index અને બીજી index ધરાવશે.

ચાલો આ ફાઈલ એક્ઝિક્યુટ કરીએ.

10:48 terminal પર જાવ અને ટાઈપ કરો- awk space hyphen small f space multi underscore scan dot awk

અને Enter દબાવો.

11:01 આઉટપુટ જુઓ; indices નો મૂળ ક્રમ પુન:પ્રાપ્ત થયો છે.
11:07 ચાલો સારાંશ લઈએ. આ ટ્યુટોરીયલમાં આપણે આપેલ વિશે શીખ્યા- awk માં એક multidimensional array બનાવવો અને multidimensional array ને સ્કેન કરવું
11:18 એસાઇનમેન્ટ તરીકે, એક two dimensional array ને 90 ડિગ્રી ફેરવવા માટે awk script લખો અને ફરેલા matrix ને પ્રિન્ટ કરો.
11:28 આપેલ લિંક પર ઉપલબ્ધ વિડિઓ સ્પોકન ટ્યુટોરીયલ પ્રોજેક્ટનો સારાંશ આપે છે.

કૃપા કરી તેને ડાઉનલોડ કરીને નિહાળો.

11:36 Spoken Tutorial Project ટીમ સ્પોકન ટ્યુટોરીયલોનો ઉપયોગ કરીને વર્કશોપો આયોજે છે.

અને ઓનલાઇન પરીક્ષા પાસ થવા પર પ્રમાણપત્રો આપે છે.

11:45 વધુ વિગત માટે, કૃપા કરી અમને લખો.
11:49 તમારા પ્રશ્નોને આ ફોરમ પર પોસ્ટ કરો.
11:53 સ્પોકન ટ્યુટોરીયલ પ્રોજેક્ટને NMEICT, MHRD, ભારત સરકાર દ્વારા ફાળો અપાયો છે.

આ મિશન પર વધુ માહિતી આ લિંક પર ઉપલબ્ધ છે.

12:05 ભાષાંતર કરનાર, હું ભરત સોલંકી હવે આપથી વિદાય લઉં છું.

જોડાવા બદ્દલ આભાર.

Contributors and Content Editors

Bharat636