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

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 Awkல் Loopகள் குறித்த ஸ்போகன் டுடோரியலுக்கு நல்வரவு.
00:06 இந்த டுடோரியலில் நாம் கற்கப்போவது- Awkல், while, do-while, for மேலும் சில looping constructகள்.
00:16 இதை சில உதாரணங்கள் மூலம் நாம் செய்வோம்.
00:20 இந்த டுடோரியலை பதிவு செய்ய நான், Ubuntu Linux 16.04 Operating System மற்றும் gedit text editor 3.20.1ஐ பயன்படுத்துகிறேன்.
00:32 உங்களுக்கு விருப்பமான எந்த text editorஐயும் நீங்கள் பயன்படுத்தலாம்.
00:36 இந்த டுடோரியலை பயிற்சி செய்ய, இந்த வலைத்தளத்தில் உள்ள முந்தையawk டுடோரியல்களை நீங்கள் படித்திருக்க வேண்டும்.
00:43 C அல்லதுC++ போன்ற ஏதேனும் ஒரு programming language, உங்களுக்கு தெரிந்திருக்கவேண்டும்.
00:50 இல்லையெனில், எங்கள் வலைத்தளத்தில் உள்ள அதற்கான டுடோரியல்களை படிக்கவும்.
00:56 இந்த டுடோரியலில் பயன்படுத்தப்பட்டுள்ள fileகள், இந்த டுடோரியல் பக்கத்தில் உள்ள Code Files இணைப்பில் உள்ளது. அவற்றை தரவிறக்கி, extract செய்துகொள்ளவும்.
01:06 ஒன்று அல்லது பல செயல்களை மீண்டும் மீண்டும் செய்ய ஒரு loop நம்மை அனுமதிக்கிறது.
01:12 while, do-while மற்றும் for , awkல் உள்ள loopகள் ஆகும்.
01:18 while loopன் syntaxஐ இங்கு காணலாம்.
01:22 குறிப்பிடப்பட்டcondition, உண்மையா என்று While loop முதலில் சரிபார்க்கிறது.
01:27 உண்மையெனில், பின் body.யினுள் உள்ள codeஐ அது செயல்படுத்துகிறது. குறிப்பிடப்பட்ட while condition , trueஆக இருக்கும் வரை, இந்த loop மீண்டும் மீண்டும் நடத்தப்படும்.
01:37 நாம் முன்னர் பயன்படுத்திய அதே awkdemo.txt fileஐ பயன்படுத்துவோம்.
01:43 நான் ஏற்கனவே, while_loop.awk என்று பெயரிடப்பட்ட scriptஐ எழுதியுள்ளேன்.
01:48 அதே file, இந்த டுடோரியலின் Code Files இணைப்பில் உள்ளது.
01:53 இங்கு நாம் Field Separatorஆக Pipe symbolஐ set செய்துள்ளோம்.
01:58 தொடக்கத்தில், loop variable i ன் மதிப்பை 1க்கு நாம் set செய்யவேண்டும்.
02:04 இங்கு, f என்ற மேலும் ஒரு variableஐ எடுத்துக்கொண்டு, அதை 1க்கு initialize செய்துள்ளோம்.
02:10 Variable f, ஒவ்வொரு recordக்கான, field counter அல்லது fieldகளின் இடத்தை குறித்துக்காட்டுகிறது.
02:17 இப்போது, while conditionல், i, 3க்கு குறைவாக அல்லது சமமாக இருக்கிறதா என்று நாம் சரிபார்க்கிறோம்.
02:23 ஆம் எனில், awkdemo.txt fileலில், அந்த recordக்கான மதிப்பை அது, fth fieldல் print செய்கிறது.
02:31 பின், நாம் field counter fஐ 1 கூடுதலாக்குவோம்.
02:36 அதன் பின், loop variable iன் மதிப்பையும் நாம் 1 கூடுதலாக்குவோம்.
02:43 இந்த printf, ஒவ்வொரு rowன் இறுதியிலும் ஒரு newline characterஐ print செய்வதற்காகும்.
02:49 awkdemo.txt fileலில் உள்ள எல்லா recordகளுக்கும் இந்த loop செயல்படுத்தப்படும்.
02:55 இதன் பொருள், ஒவ்வொரு recordக்கும், முதல் 3 fieldகள் print செய்யப்படும்.
03:00 இந்த codeஐ இப்போது செயல்படுத்துவோம்.
03:03 CTRL, ALT மற்றும் T keyகளை அழுத்தி, terminalஐ திறக்கவும்.
03:09 cd commandஐ பயன்படுத்தி, நீங்கள் தரவிறக்கி, extract செய்த Code Fileகளை வைத்துள்ள folderக்கு செல்லவும்.
03:16 இப்போது டைப் செய்க: awk space hyphen சிறியf space while_loop.awk space awkdemo.txt. Enter.ஐ அழுத்தவும்.
03:29 Outputல், எல்லா rowக்களின் முதல் 3 fieldகளை நாம் பெறுவதை கவனிக்கவும்.
03:35 do-while loopக்கும் நாம் இதையே செய்வோம்.
03:38 do-while loopன் syntaxஐ நாம் இங்கு காணலாம்.
03:42 Bodyயினுள் இருக்கின்ற codeஐ , do-while loop எப்போதும் ஒரு முறை செயல்படுத்துகிறது.
03:47 பின் அது, குறிப்பிடப்பட்ட condition.ஐ சரிபார்க்கிறது. மேலும், குறிப்பிடப்பட்ட condition, trueஆக இருக்கும் வரை, அது bodyயினுள் உள்ள codeஐ மீண்டும் மீண்டும் செய்கிறது.
03:56 நான் ஏற்கனவே ஒரு scriptஐ எழுதி, அதற்கு do_loop.awk என பெயரிட்டுள்ளேன். அதே file , Code Files இணைப்பில் உள்ளது.
04:06 இந்த codeன், do loop, இனுள் உள்ள இந்த statementகள், முதலில் செயல்படுத்தப்படும். இந்த condition சரிபார்க்கப்படும்.
04:15 அதற்குப் பிறகு, loop, யினுள் உள்ள statementகள், condition, trueஆக இருக்கும் வரை, மீண்டும் மீண்டும் செயல்படுத்தப்படும்.
04:23 awkdemo.txt fileலில் உள்ள எல்லா recordகளுக்கும், இந்த loop திரும்ப செய்யப்படும். இதன் பொருள், எல்லா recordகளுக்கும், முதல் 3 fieldகள் print செய்யப்படும்.
04:33 Terminalக்கு திரும்பவும். நான் terminalஐ clear செய்கிறேன்.
04:38 இப்போது டைப் செய்க: awk space hyphen சிறியf space do underscore loop dot awk space awkdemo dot txt. Enter.ஐ அழுத்தவும்.
04:52 நாம் அதே outputஐ பெறுகிறோம். பின், while மற்றும் do-while loopகள் இரண்டையும் நாம் ஏன் கொண்டுள்ளோம்?
04:58 அதன் வேறுபாட்டை புரிந்துகொள்வோம்.
05:00 while underscore loop dot awk fileக்கு மாறவும்.
05:05 இப்போது, loop counter i ன் மதிப்பை 1ல் இருந்து 4க்கு மாற்றவும்.
05:11 இது, குறிப்பிடப்பட்ட conditionஐ முதலிருந்து falseஆக வைக்கும். இதன் பொருள், நமக்கு output எதுவும் கிடைக்கக்கூடாது.
05:19 Fileஐ சேமித்து, terminalக்கு மாறவும்.
05:22 Terminalஐ clear செய்யவும். இப்போது, while loop.ஐ செயல்படுத்துவதற்கான commandஐ நீங்கள் பெரும் வரை, Up arrow key ஐ அழுத்தவும்.
05:30 இப்போது, Enter.ஐ அழுத்தவும்.
05:32 காலி வரிகளைத் தவிர வேறு எந்த outputஉம் நமக்கு கிடைக்கவில்லை என்பதை நீங்கள் காணலாம்.
05:37 awkdemo.txt fileலில் உள்ள ஒவ்வொரு recordற்கும், outputல் காலி வரிகள் print செய்யப்படுகின்றன.
05:44 இப்போது, do loop fileலில் சில மாற்றங்களை செய்வோம்.
05:48 do underscore loop dot awk fileக்கு மாறவும்.
05:53 iன் மதிப்பை 1ல் இருந்து 4க்கு மாற்றவும்.
05:57 Fileஐ சேமித்து, terminalக்கு மாறவும்.
06:01 Terminalஐ clear செய்யவும். இப்போது, while loop.க்கான commandஐ நீங்கள் பெறும் வரை, Up arrow key ஐ அழுத்தவும். Enter.ஐ அழுத்தவும்.
06:10 Outputல், ஒவ்வொரு rowவின் முதல் field மட்டும் print செய்யப்படுகிறது. காரணம் என்ன?
06:16 ஒவ்வொரு rowக்கும், முதல் field, ல் உள்ள மதிப்பை print செய்கிறது, ஏனெனில், variable f ன் மதிப்பு 1.க்கு initialize செய்யப்பட்டுள்ளது. பின், condition சரிபார்க்கப்படுகிறது.
06:28 loop counter i ன் மதிப்பு 4 ஆதலால், பின் condition , false ஆகிறது. அதனால், அந்த recordற்கு, loop அங்கேயே நிறுத்தப்படுகிறது.
06:39 awkdemo.txt fileலில் உள்ள எல்லா recordற்கும், loop திரும்ப செய்யப்படும்.
06:44 இதன் பொருள், ஒவ்வொரு recordக்குமான முதல் field print செய்யப்படும்.
06:49 ஒவ்வொரு recordக்கும் குறைந்தபட்சம் ஒருமுறை நாம் outputஐ பெறுகிறோம்.
06:53 வேறு எந்த conditionஐயும் பொருட்படுத்தாமல், ஒரு வேலையை குறைந்தபட்சம் ஒருமுறை செயல்படுத்துவதற்கு, do-while loop, ஐ பயன்படுத்தவும்.
07:01 for loopற்கும் இதையே நாம் செய்யலாம்.
07:05 for loop ன் syntaxஐ நாம் இங்கு காணலாம்.
07:09 initializationஐ செயல்படுத்துவதிலிருந்து, for statement தொடங்குகிறது.
07:14 பின், condition உண்மையாக இருக்கும் வரை, உள்ளுக்குள்ளே statement களை மீண்டும் மீண்டும் அது செயல்படுத்தி, பின் increment செய்கிறது.
07:23 உங்களுக்கு, C அல்லதுC++ போன்ற ஒரு language தெரிந்திருக்கும் என்று அனுமானித்துக்கொண்டு, நான் syntaxஐ விவரமாக விளக்கப்போவதில்லை.
07:30 இந்த conditionக்கான for loop , இவ்வாறு இருக்கும்.
07:35 இங்கு, initialization, condition ஐ சரிபார்ப்பது மற்றும் variableஐ அதிகப்படுத்துவது ஒரே வரியில் செய்யப்படுகின்றன.
07:43 இதை நீங்களே முயற்சி செய்து பாருங்கள்.
07:46 break, continue, exit என்று மேலும் சில looping constructகள் உள்ளன.
07:53 பின்வரும் டுடோரியல்களில், இவை சம்பந்தமான சில உதாரணங்களை பார்ப்போம்.
07:58 ஒற்றை அல்லது பல commentகளை நாம் நமது fileலில் கொண்டிருக்கலாம்.
08:03 இங்கு, ஒற்றை hash (#) symbol.இனால், ஒற்றை வரி commentகள் declare செய்யப்பட்டுள்ளதை நீங்கள் கவனிக்கலாம்.
08:10 பல வரி commentகள், இரட்டை hash (##) குறியீட்டின் உதவியால் declare செய்யப்பட்டுள்ளன.
08:16 இப்போது, இந்த commentகளை சரிப்பார்ப்பதற்கும், outputல் print செய்வதற்குமான அவசியம் இல்லை.
08:22 hash (##) குறியுடன் தொடங்குகின்ற வரிகளை நாம் தவிர்க்க வேண்டும். இதை எப்படி நாம் செய்யலாம்?
08:28 8000க்கும் மேல் உதவித்தொகை பெருகின்றவற்கு, 50 சதவிகிதம் உயர்வு கொடுக்கின்ற உதாரணத்தை நினைவு கூறவும்.
08:36 Commentகளை தவிர்க்க, அதே உதாரணத்தை நாம் பயன்படுத்துவோம்.
08:40 இந்த செயல்படுத்துதலுக்கு, இங்கு காட்டப்பட்டுள்ளபடி நான், next.awk என்று பெயரிடப்பட்ட ஒரு fileஐ உருவாக்கியுள்ளேன்.
08:47 இப்போது, இந்த commandன் பொருள் என்ன?
08:50 ஒவ்வொரு வரியின் தொடக்கத்திலும் awk, caret குறியீடுhash symbol(^#) படிவத்தை தேடும்.
08:57 படிவம் கிடைத்துவிட்டால், உடனடியாக தற்போதைய வரியை தவிர்க்கவேண்டும் என்று keyword next , awkக்கு சொல்லும்.
09:04 பின் awk, fileன் அடுத்த வரியிலிருந்து process செய்யத்தொடங்கும். இது, process செய்கின்ற நேரத்தை குறைக்கும்.
09:12 Terminalக்கு மாறி, இங்கு காட்டப்பட்டுள்ளபடி commandஐ டைப் செய்து, பின் Enter.ஐ அழுத்தவும்.
09:20 Commentகள் இல்லாத outputஐ நாம் பெறுகிறோம்.
09:24 மாணவர்களின் recordகளை, பல fileகளில், அதே formatஉடன் நாம் கொண்டிருக்கிறோம் என்று வைத்துக்கொள்வோம். அதாவது, awkdemo_mod.txt மற்றும்awkdemo2.txt.
09:37 இது, நமது முந்தைய fileஉடன் ஒத்திருப்பதை காணவும்.
09:41 Commentகளுக்கு முன்பு, hash குறியீட்டையும் அது கொண்டிருக்கிறது.
09:45 மேலும், இறுதியில்hash ## குறியுடன் பெரிய text ஐ அது கொண்டிருக்கிறது
09:50 அதனால், நமது data , இரண்டு வெவ்வேறு fileகளில் உள்ளது. எல்லா மாணவர்களுக்கும் ஒரு சம்பள உயர்வை கொடுக்க, awk இரண்டு fileகளையும் process செய்யவேண்டும்.
09:59 நாம் முதல் fileன் இரட்டைhash(##) குறியீட்டை அடைந்தவுடன், அந்த fleஐ process செய்வதை, awk முழுமையாக நிறுத்தவேண்டும்.
10:06 பின், அடுத்த fileலில் இருந்து, அது செயல்படுத்துதலை தொடங்கவேண்டும். இது process செய்கின்ற நேரத்தை குறைக்கும்.
10:13 இங்கு காட்டப்பட்டுள்ளபடி, next.awk ஐ மாற்றவும்.
10:17 Begin statementக்கு கீழ், dollar பூஜ்யம் tilde slash caret குறியீடு இரட்டைhash slash அடைப்புக்குறிகளினுள்nextfile semicolon ஐ நான் சேர்த்துள்ளேன்.
10:29 இது, ஒவ்வொரு வரியின் தொடக்கத்திலும் இரட்டைhash # குறியீட்டை தேடும்.
10:34 அதை கண்டுபிடித்தால், அடுத்த fileஐ process செய்ய, அது தற்போதைய fileஐ தவிர்த்துவிடும்.
10:39 இந்த fileஐ சேமிக்கவும்.
10:41 Terminalக்கு மாறி, பின்வரும் commandஐ டைப் செய்யவும். Enter.ஐ அழுத்தவும்.
10:48 இரண்டு fileகளிலிருந்தும் outputஐ பெறுவதை நாம் காணலாம்.
10:53 இத்துடன் நாம் இந்த டுடோரியலின் முடிவுக்கு வந்துவிட்டோம். சுருங்கச் சொல்ல.
10:58 இந்த டுடோரியல் நாம் கற்றது- Awkல், while, do… while, for, next, nextfile .
11:06 பயிற்சியாக, awkdemo2.txtன் மாணவரின் recordகளுக்கு, even fieldகளை மட்டும் print செய்யவும். அதாவது, field 2, field 4 போன்றவை, input fileலில் உள்ள fieldகளின் எண்ணிக்கையை பொருட்படுத்தாமல்.
11:22 பின்வரும் இணைப்பில் உள்ள காணொளி, Spoken Tutorial திட்டத்தை சுருங்கச் சொல்கிறது. அதை தரவிறக்கி காணவும்.
11:30 ஸ்போகன் டுடோரியல் திட்டக்குழு , ஸ்போகன் டுடோரியல்களை பயன்படுத்தி, செய்முறை வகுப்புகள் நடத்தி, இணையத்தில் பரீட்சை எழுதி தேர்வோருக்கு சான்றிதழ்கள் தருகிறது.
11:43 இந்த ஸ்போகன் டுடோரியலில் உங்களுக்கு ஏதேனும் கேள்விகள் உள்ளதா? இந்த தளத்தை பார்க்கவும்.
11:49 ஸ்போகன் டுடோரியல் திட்டத்திற்கு பண ஆதரவு, இந்திய அரசாங்கத்தின், NMEICT, MHRD, மூலம் கிடைக்கிறது. மேலும் விவரங்களுக்கு, கீழ்கண்ட இணைப்பை பார்க்கவும்.
12:01 இந்த டுடோரியலை தமிழாக்கம் செய்தது ஜெயஸ்ரீ, குரல் கொடுத்தது ரிஷிதா. கலந்துகொண்டமைக்கு நன்றி.

Contributors and Content Editors

Jayashree