Linux-AWK/C2/Loops-in-awk/Gujarati

From Script | Spoken-Tutorial
Revision as of 09:18, 2 July 2019 by Bharat636 (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 નમસ્તે, awk માં Loops પરના આ સ્પોકન ટ્યુટોરીયલમાં સ્વાગત છે.
00:06 આ ટ્યુટોરીયલમાં આપણે આપેલ વિશે શીખીશું- awk માં while

do-while, for અને વધુ looping constructs

00:16 આપણે આ અમુક ઉદાહરણ મારફતે કરીશું.
00:20 આ ટ્યુટોરીયલને રેકોર્ડ કરવા માટે, હું વાપરી રહ્યો છું

Ubuntu Linux 16.04 Operating System અને gedit text editor 3.20.1

00:32 તમે તમારા પસંદનું કોઈપણ ટેક્સ્ટ એડિટર વાપરી શકો છો.
00:36 આ ટ્યુટોરીયલનો અભ્યાસ કરવા માટે, તમે અમારી વેબસાઈટ પરના પાછલા awk ટ્યુટોરીયલો મારફતે જવું જોઈએ.
00:43 તમે કોઈપણ programming language સાથે પરિચિત હોવા જોઈએ જેમ કે C અથવા C++
00:50 જો નથી, તો અમારી વેબસાઈટ પરના સબંધિત ટ્યુટોરીયલો મારફતે જાવ.
00:56 આ ટ્યુટોરીયલમાં વાપરવામાં આવેલ ફાઈલ આ ટ્યુટોરીયલ પુષ્ઠ પરના Code Files લિંકમાં ઉપલબ્ધ છે.

કૃપા કરી તેને ડાઉનલોડ કરીને એક્સટ્રેક્ટ કરો.

01:06 એક loop આપણને એક અથવા વધુ ક્રિયાઓ વારંવાર કરવાની પરવાનગી આપે છે.
01:12 while, do-while અને for awk માં ઉપલબ્ધ loops છે.
01:18 while loop નું સિન્ટેક્સ અહીં જોઈ શકાય છે.
01:22 While loop પહેલા તપાસે છે કે નિર્દિષ્ટ condition સાચી છે કે નહિ.
01:27 જો હા, તો તે body અંતર્ગત કોડ એક્ઝિક્યુટ કરે છે.

loop પુનરાવર્તિત થતું રહેશે જ્યાં સુધી નિર્દિષ્ટ while condition true હોય.

01:37 આપણે સમાન awkdemo.txt ફાઈલ વાપરીશું, જે આપણે પહેલા વાપરી છે.
01:43 મેં પહેલાથી જ while_loop.awk નામની એક સ્ક્રિપ્ટ લખી છે.
01:48 સમાન ફાઈલ આ ટ્યુટોરીયલના Code Files લિંકમાં ઉપલબ્ધ છે.
01:53 અહીં આપણે field separator ને Pipe symbol તરીકે સુયોજિત કર્યું છે.
01:58 પ્રારંભમાં, આપણને loop variable i ની વેલ્યુ 1 તરીકે સુયોજવી પડતી હતી.
02:04 અહીં, આપણે વધુ એક વેરિએબલ f લીધું છે અને તેને 1 ઈનિશલાઇઝ કર્યું છે.
02:10 Variable ffield counter રજુ કરે છે અથવા દરેક record માટે fields ની પોઝિશન.
02:17 હવે, while condition માં, આપણે તપાસ કરીએ છીએ કે i એ 3 કરતા નાનો અથવા તેની બરાબર છે કે નહિ.
02:23 જો હા, તો તે awkdemo.txt ફાઈલમાં તે રેકોર્ડ માટે, fth ફિલ્ડમાં વેલ્યુ પ્રિન્ટ કરશે.
02:31 ત્યારબાદ આપણે field counter f ને 1 દ્વારા વધારીશું.
02:36 તેના પછી, આપણે loop variable i ની વેલ્યુને પણ 1 દ્વારા વધારીશું.
02:43 printf એ દરેક પંક્તિની અંતમાં newline character પ્રિન્ટ કરવા માટે છે.
02:49 loopawkdemo.txt ફાઈલમાં તમામ રેકોર્ડો માટે એક્ઝિક્યુટ થશે.
02:55 જેનો અર્થ એ છે કે પહેલા 3 ફીલ્ડો દરેક રેકોર્ડ માટે પ્રિન્ટ થશે.
03:00 ચાલો હવે આ કોડને એક્ઝિક્યુટ કરીએ.
03:03 Ctrl, Alt અને T કી દાબીને terminal ખોલો.
03:09 cd command નો ઉપયોગ કરીને એ ફોલ્ડરમાં જાવ જ્યાં તમે Code Files ડાઉનલોડ કરી છે અને એક્સટ્રેકટ કરી છે.
03:16 હવે ટાઈપ કરો: awk space hyphen small f space while_loop.awk space awkdemo.txt

Enter દબાવો.

03:29 અવલોકન કરો, આપણને આઉટપુટમાં તમામ પંક્તિઓની પહેલી ત્રણ fields મળે છે.
03:35 ચાલો સમાન ક્રિયા do-while loop સાથે કરીએ.
03:38 do-while loop નું સિન્ટેક્સ અહીં જોઈ શકાય છે.
03:42 do-while loop હંમેશા body અંતર્ગત એકવાર કોડ એક્ઝિક્યુટ કરે છે.
03:47 ત્યારબાદ તે નિર્દિષ્ટ condition તપાસ કરે છે. અને ત્યારસુધી body અંતર્ગત કોડ પુનરાવર્તિત કરે છે, જ્યાં સુધી નિર્દિષ્ટ conditiontrue હોય છે.
03:56 મેં પહેલાથી જ સ્ક્રિપ્ટ લખીને તેને do_loop.awk નામ આપ્યું છે

સમાન ફાઈલ Code Files લિંકમાં ઉપલબ્ધ છે.

04:06 આ કોડમાં, do loop અંતર્ગત આ statements છે, જે પહેલા એક્ઝિક્યુટ થશે.

condition છે જેને તપાસ કરવામાં આવશે.

04:15 તેના પછી, loop અંતર્ગત આવેલ statements ત્યાં સુધી પુનરાવર્તિત થઈને એક્ઝિક્યુટ થતું રહેશે જ્યાં સુધી condition true હોય છે.
04:23 loopawkdemo.txt ફાઈલમાં તમામ રેકોર્ડો માટે પુનરાવર્તિત થશે

જેનો અર્થ એ થાય છે કે પહેલા 3 ફીલ્ડો તમામ રેકોર્ડો માટે પ્રિન્ટ થશે.

04:33 ચાલો terminal પર જઈએ. ચાલો હું terminal સાફ કરું.
04:38 હવે ટાઈપ કરો: awk space hyphen small f space do underscore loop dot awk space awkdemo dot txt
Enter દબાવો.
04:52 આપણને સમાન આઉટપુટ મળે છે. તો શા માટે આપણી પાસે while અને do-while loops બંને છે?
04:58 ચાલો તફાવત સમજીએ.
05:00 while underscore loop dot awk ફાઈલ પર જાવ
05:05 હવે, loop counter i ની વેલ્યુ 1 થી બદલીને 4 કરો.
05:11 આ શરૂઆતથી નિર્દિષ્ટ condition false બનાવશે.

તો આનો અર્થ એ થાય છે કે, આપણને કોઈપણ આઉટપુટ મળવું ન જોઈએ.

05:19 ફાઈલને સેવ કરો અને terminal પર જાવ.
05:22 terminal ને સાફ કરો.

હવે અપ એરો કીને ત્યાં સુધી દબાવો જ્યાં સુધી તમને while loop ને એક્ઝિક્યુટ કરવાનો કમાન્ડ ન મળે.

05:30 હવે Enter દબાવો.
05:32 જુઓ, આપણને ખાલી લાઈનો સિવાય કોઈ આઉટપુટ મળતું નથી.
05:37 awkdemo.txt ફાઈલમાં દરેક રેકોર્ડ માટે, આઉટપુટમાં ખાલી લાઈનો પ્રિન્ટ થાય છે.
05:44 હવે, ચાલો do loop ફાઈલમાં અમુક ફેરફાર કરીએ.
05:48 do underscore loop dot awk ફાઈલ પર જાવ
05:53 i ની વેલ્યુ 1 થી બદલીને 4 કરો.
05:57 ફાઈલને સેવ કરો અને terminal પર જાવ.
06:01 terminal ને સાફ કરો.

હવે અપ એરો કીને ત્યાં સુધી દબાવો જ્યાં સુધી તમને do loop ને એક્ઝિક્યુટ કરવાનો કમાન્ડ ન મળે.

Enter દબાવો.

06:10 આઉટપુટમાં, દરેક પંક્તિ માટે ફક્ત પહેલી ફિલ્ડ પ્રિન્ટ થાય છે.

કારણ શું છે?

06:16 દરેક પંક્તિ માટે, awk પહેલા પ્રથમ field ખાતે આવેલ વેલ્યુ પ્રિન્ટ કરે છે, કારણ કે variable f ની વેલ્યુ 1 પર ઈનિશલાઈઝ થઇ છે.

ત્યારબાદ condition તપાસવામાં આવે છે.

06:28 જો કે loop counter i ની વેલ્યુ એ 4 છે, તો condition false છે.

તેથી, તે રેકોર્ડ માટે, loop ત્યાંજ ટર્મિનેટ થાય છે.

06:39 loopawkdemo.txt ફાઈલમાં તમામ રેકોર્ડો માટે પુનરાવર્તિત થશે.
06:44 જેનો અર્થ એ થાય છે કે દરેક રેકોર્ડ માટે પ્રથમ field પ્રિન્ટ થશે.
06:49 આપણને આઉટપુટ દરેક રેકોર્ડ માટે ઓછામાં ઓછું એકવાર મળે છે.
06:53 અન્ય કોઈ condition હોવા છતાં, કાર્ય ઓછામાં ઓછું એકવાર એક્ઝિક્યુટ કરવા હેતુ, do-while loop નો ઉપયોગ કરો.
07:01 આપણે સમાનને for loop સાથે પણ કરી શકીએ છીએ.
07:05 for loop માટેના સિન્ટેક્સને અહીં જોઈ શકાય છે.
07:09 for statementinitialization એક્ઝિક્યુટ કરીને શરુ થાય છે.
07:14 ત્યારબાદ, જ્યાંસુધી condition સાચી હોય, ત્યાંસુધી તે અંતર્ગત statements પુનરાવર્તિત રીતે એક્ઝિક્યુટ કરતુ રહે છે અને પછી increments કરતુ રહે છે
07:23 એ માનીને ચાલીએ કે તમે C અથવા C++ જેવી ભાષાથી પરિચિત છો, હું સિન્ટેક્સ વિગતમાં સમજાવી નથી રહ્યો.
07:30 આ પ્રમાણે for loop condition માટે દેખાય છે.
07:35 અહીં, initialization, condition તપાસ અને વેરિએબલ વધારો સમાન લાઈનમાં થાય છે.
07:43 આ પોતેથી પ્રયાસ કરો.
07:46 અહીં કેટલાક વધુ looping constructs છે

break, continue, exit

07:53 આપણે આના પર કેટલાક સંબંધિત ઉદાહરણો આવનારા ટ્યુટોરીયલોમાં જોશું.
07:58 આપણે આપણી ફાઈલમાં એકલ અને બહુલાઈન comments ધરાવી શકીએ છીએ.
08:03 અહીં નોંધ લો, એકલ લાઈન comments એ એકલ hash (#) ચિન્હ સાથે ઘોષિત થાય છે.
08:10 બહુલાઇન comments એ બમણા hash (##) ચિન્હની મદદથી ઘોષિત થાય છે.
08:16 અત્યારે, આ comments ને તપાસ કરવાનો અને આઉટપુટમાં પ્રિન્ટ કરવાનો કોઈ પોઇન્ટ નથી.
08:22 આપણને hash (##) ચિન્હ સાથે શરુ થતી લાઈનોને પડતી મુકવી પડશે.

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

08:28 8000 થી વધુ મેળવનારને શિષ્યવૃત્તિમાં 50% વધારો આપવાનો કિસ્સો યાદ કરો.
08:36 comments ને પડતું મુકવા માટે આપણે સમાન ઉદાહરણ વાપરીશું.
08:40 મેં આ એક્ઝિક્યુશન માટે અહીં દર્શાવ્યા પ્રમાણે next.awk નામની ફાઈલ બનાવી છે.
08:47 હવે, આ કમાન્ડનો અર્થ શું થાય છે?
08:50 awk પેટર્ન માટે શોધ કરશે, caret sign hash symbol(^#) દરેક ફાઈલની શરૂઆતમાં.
08:57 જો પેટર્ન મળે છે, તો કીવર્ડ next awk ને વર્તમાન લાઈનને તુરત પડતી મુકવાનું કહે છે.
09:04 ત્યારબાદ awk ફાઈલમાં આગળની લાઈનથી પ્રોસેસ કરવાનું શરુ કરશે.

આનાથી પ્રોસેસિંગ સમયની બચત થશે.

09:12 terminal પર જાવ અને અહીં દર્શાવ્યા પ્રમાણે કમાન્ડ ટાઈપ કરો અને

Enter દબાવો.

09:20 આપણને કોઈપણ comments વિના આઉટપુટ મળે છે.
09:24 ધારો કે, આપણી પાસે વિદ્યાર્થીનો રેકોર્ડ બહુવિધ ફાઈલોમાં સમાન ફોર્મેટ સાથે છે.

માનો કે awkdemo_mod.txt અને awkdemo2.txt માં

09:37 જુઓ, તે આપણી પાછલી ફાઈલના સમાન છે.
09:41 સાથે જ તે comments ધરાવે છે જે આગળ hash ચિન્હ હોય છે.
09:45 અને તે અંતમાં મોટી ટેક્સ્ટ ધરાવે છે જે બમણા hash ## ચિન્હ સાથે હોય છે.
09:50 તો આપણો ડેટા બે વિભિન્ન ફાઈલોમાં છે.

awk એ તમામ વિદ્યાર્થીઓને વધારો આપવા માટે બંને ફાઈલો પ્રોસેસ કરવી જોઈએ.

09:59 એકવાર આપણે પહેલી ફાઈલના બમણા hash(##) ચિન્હ પર પહોંચીએ તો, awk એ તે ફાઈલને પ્રોસેસ કરવું પૂર્ણપણે રોકી દેવું જોઈએ.
10:06 ત્યારબાદ તેણે આગળની ફાઈલથી એક્ઝિક્યુશન શરુ કરવું પડશે.

આનાથી પ્રોસેસિંગ સમયની બચત થશે.

10:13 અહીં દર્શાવ્યા પ્રમાણે next.awk ને મોડીફાય કરો.
10:17 મેં begin statement ની નીચે ઉમેરી દીધું છે dollar zero tilde slash caret symbol double hash slash within braces nextfile semicolon .
10:29 આ દરેક ફાઈલની શરૂઆતમાં બમણા hash # ચિન્હ માટે શોધશે.
10:34 જો મળે તો, awk વર્તમાન ફાઈલને છોડી દેશે અને આગલી ફાઈલ પ્રોસેસ કરશે.
10:39 આ ફાઈલને સેવ કરો.
10:41 terminal પર જાવ અને આપેલ કમાન્ડ ટાઈપ કરો.

Enter દબાવો.

10:48 જુઓ, આપણને બંને ફાઈલોથી આઉટપુટ મળે છે.
10:53 અહીં આ ટ્યુટોરીયલનો અંત થાય છે.

ચાલો સારાંશ લઈએ.

10:58 આ ટ્યુટોરીયલમાં આપણે આપેલ વિશે શીખ્યા- awk માં while, do… while, for, next, nextfile
11:06 એસાઇનમેન્ટ તરીકે, awkdemo2.txt ના વિદ્યાર્થી રેકોર્ડ માટે, ફક્ત સમ fields ને પ્રિન્ટ કરો (એટલે કે field 2, field 4 વગેરે, પછી ભલે input file માં કેટલા પણ fields હોય.
11:22 આપેલ લિંક પર ઉપલબ્ધ વિડિઓ સ્પોકન ટ્યુટોરીયલ પ્રોજેક્ટનો સારાંશ આપે છે.

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

11:30 Spoken Tutorial Project ટીમ સ્પોકન ટ્યુટોરીયલોનો ઉપયોગ કરીને વર્કશોપો આયોજે છે અને ઓનલાઇન પરીક્ષા પાસ થવા પર પ્રમાણપત્રો આપે છે.

વધુ વિગત માટે, કૃપા કરી અમને લખો.

11:43 શું તમારી પાસે આ સ્પોકન ટ્યુટોરીયલમાં કોઈ પ્રશ્નો છે?

કૃપા કરી આ સાઈટની મુલાકાત લો.

11:49 સ્પોકન ટ્યુટોરીયલ પ્રોજેક્ટને NMEICT, MHRD, ભારત સરકાર દ્વારા ફાળો અપાયો છે.

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

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

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

Contributors and Content Editors

Bharat636