Linux-AWK/C2/MultiDimensional-Array-in-awk/Tamil
From Script | Spoken-Tutorial
|
|
00:01 | Awkல், multidimensional arrayக்களை உருவாக்குவது குறித்த ஸ்போகன் டுடோரியலுக்கு நல்வரவு. |
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 | உங்களுக்கு விருப்பமான எந்த text editorஐயும் நீங்கள் பயன்படுத்தலாம். |
00:37 | இந்த டுடோரியலை பயிற்சி செய்ய, இந்த வலைத்தளத்தில் உள்ள, array பற்றிய முந்தையawk டுடோரியலை நீங்கள் படித்திருக்க வேண்டும். |
00:45 | C அல்லதுC++ போன்ற ஏதேனும் ஒரு programming languageன் அடிப்படை பற்றி உங்களுக்கு தெரிந்திருக்கவேண்டும். |
00:52 | இல்லையெனில், எங்கள் வலைத்தளத்தில் உள்ள அதற்கான டுடோரியல்களை படிக்கவும். |
00:58 | இந்த டுடோரியலில் பயன்படுத்தப்பட்டுள்ள fileகள், இந்த டுடோரியல் பக்கத்தில் உள்ள Code Files இணைப்பில் உள்ளது. அவற்றை தரவிறக்கி, extract செய்துகொள்ளவும். |
01:08 | Awkல் ஒரு multidimensional array என்றால் என்ன? |
01:12 | Single dimensional arrayக்களில், ஒரு ஒற்றை indexஆல், ஒரு array element அடையாளம் காணப்படுகிறது. |
01:19 | உதாரணத்திற்குarray week , ஒரு ஒற்றை index, dayஆல் அடையாளம் காணப்படுகிறது. |
01:26 | ஆனால் multidimensional arrayல், பல indexகளின் ஒரு வரிசையால், ஒரு element அடையாளம் காணப்படுகிறது. |
01:34 | உதாரணத்திற்கு, ஒரு two dimensional array element , 2 indexகளின் ஒரு வரிசையால் அடையாளம் காணப்படுகிறது. |
01:42 | இங்கு multiple indexகள், அவைகளுக்கிடையே ஒரு separator உடன், ஒரு ஒற்றை stringஆக ஒன்று சேர்க்கப்படுகிறது. |
01:50 | separator என்பது, built-in variable SUBSEPன் மதிப்பாகும். |
01:55 | ஒரு எளிய one dimensional arrayக்கு, ஒன்று சேர்க்கப்பட்ட string, ஒரு ஒற்றை indexஆக பயன்படுத்தப்படுகிறது. |
02:01 | உதாரணத்திற்கு, multi சதுர அடைப்புக்குறிகளினுள்4 comma 6 equal to இரட்டை மேற்கோள்களினுள் உள்ள மதிப்பு என்று நாம் எழுதுகிறோம். |
02:11 | இங்கு, multi என்பது multi-dimensional array. ன் பெயராகும். பின், எண்கள் 4 மற்றும் 6 , ஒரு stringஆக மாற்றப்படுகின்றன. |
02:21 | SUBSEPன் மதிப்பு, hash symbol (#). என்று வைத்துக்கொள்வோம். |
02:26 | பின், அந்த எண்கள், அவைகளுக்கிடையே ஒரு hash symbol (#)உடன் சேர்க்கப்படுகின்றன. |
02:32 | அதனால், array element multi சதுர அடைப்புக்குறிகளினுள் இரட்டை மேற்கோள்களினுள் 4 hash 6 , இரட்டை மேற்கோள்களினுள் உள்ளvalueக்கு செட் செய்யப்படுகிறது. |
02:43 | SUBSEPன் முன்னிருப்பான மதிப்பு, string இரட்டை மேற்கோள்களினுள்backslash 034. |
02:50 | அது ஒரு, nonprinting character. ஆகும். பெரும்பான்மையான input dataவில், பொதுவாக இது தோன்றாது. |
02:58 | Slideல் காட்டப்பட்டுள்ளபடி, ஒரு two dimensional array ஐ declare செய்ய முயற்சிப்போம். |
03:03 | Row 1, இரண்டுelementகள் A மற்றும்Bஐ கொண்டிருக்கிறது. |
03:08 | Row 2, இரண்டுelementகள் C மற்றும்Dஐ கொண்டிருக்கிறது. |
03:12 | CTRL, ALT மற்றும் T keyகளை அழுத்தி, terminalஐ திறக்கவும். |
03:17 | cd commandஐ பயன்படுத்தி, நீங்கள் தரவிறக்கி, extract செய்த Code Fileகளை வைத்துள்ள folderக்கு செல்லவும். |
03:24 | இப்போது, பின்வருமாறு, array ஐ வரையறுக்கவும். இங்கு காட்டப்பட்டுள்ளபடி, commandஐ கவனமாக டைப் செய்யவும். பின், Enter.ஐ அழுத்தவும். |
03:35 | எந்த errorஉம் இல்லாமல், command promptஐ நாம் திரும்ப பெறுகிறோம். அதனால்,array வரையறுக்கப்பட்டுவிட்டது. |
03:41 | நாம் எந்த outputஐயும் பெறவில்லை. ஏனெனில், print செய்வதற்கு, codeல் நாம் எதையும் கொடுக்கவில்லை. |
03:47 | Print statementஐ சேர்ப்போம். |
03:50 | முன்பு செயல்படுத்தப்பட்ட commandஐ பெற, Up arrow key ஐ அழுத்தவும். |
03:56 | மூடுகின்ற curly bracketக்கு முன், டைப் செய்க: semicolon space print space a சதுர அடைப்புக்குறிகளினுள்2 comma 2. Commandஐ செயல்படுத்த, Enterஐ அழுத்தவும். |
04:13 | Outputஆக capital D.ஐ நாம் பெறுவதை கவனிக்கவும். |
04:18 | கொடுக்கப்பட்டுள்ள ஒரு multidimensional arrayல், ஒரு குறிப்பிட்ட index sequence இருக்கிறதா என்று எப்படி சோதிப்பது? |
04:25 | நாம் in operator.ஐ பயன்படுத்தலாம். |
04:28 | இத்தொடரில் முன்பு, single-dimensional array ல் நாம் இதை ஏற்கனவே பார்த்துள்ளோம். |
04:34 | நாம் indexகளின் முழு sequence ஐ , parentheses களினுள், commasக்களால் பிரித்து எழுதவேண்டும். |
04:42 | இதை, ஒரு உதாரணத்தில் பார்ப்போம். |
04:45 | நான் ஏற்கனவே, test_multi.awk என்று பெயருடைய scriptஐ எழுதியுள்ளேன். |
04:51 | அது, இந்த டுடோரியல் பக்கத்தின், Code Files இணைப்பில் உள்ளது. |
04:56 | நமது முந்தைய விவாதிப்பில் பார்த்தது போல், நான் ஒரு 2 by 2 array ஐ வரையறுத்துள்ளேன். |
05:02 | பின், நான் இரண்டு if conditionகளை எழுதியுள்ளேன். |
05:06 | முதல்if condition , index one comma one, ல் element இருக்கிறதா இல்லையா என்று சரிபார்க்கிறது. |
05:13 | multidimensional array க்கான index ஐ நாம், parenthesesகளினுள் எழுதவேண்டும். |
05:18 | Condition , trueஆக இருந்தால், one comma one is present என அது print செய்யும். |
05:23 | இல்லையெனில், one comma one is absent. என அது print செய்யும். |
05:28 | இவ்வாறே, index three comma one.ல் element உள்ளதா என்று நாம் சரிபார்ப்போம். Fileஐ செயல்படுத்துவோம். |
05:36 | Terminalக்கு மாறி, டைப் செய்க: awk space hyphen சிறியf space test underscore multi dot awk . பின், Enter.ஐ அழுத்தவும். |
05:49 | Output, one comma one is present மற்றும் three comma one is absent. எனக் கூறுகிறது. |
05:55 | மேலும் ஒரு உதாரணத்தை எடுத்துக்கொள்வோம். ஒரு matrixன் transpose ஐ நாம் உருவாக்க வேண்டும் என்று வைத்துக்கொள்வோம். |
06:02 | ஒரு matrixன், rowக்கள் மற்றும் columnகளை இடம் மாற்றி, கொடுக்கப்பட்டுள்ள matrixன் transpose உருவாக்கப்படுகிறது. இதை நாம் எப்படி செய்யலாம்? |
06:11 | 2D-array.txt. fileலில் நான் ஒரு two-dimensional array matrix ஐ உருவாக்கியுள்ளேன். |
06:19 | transpose.awk என்று பெயரிடப்பட்டcodeஐ நான் எழுதியுள்ளேன். |
06:24 | முதலில், இந்த awk script.ன் action sectionஐ பார்க்கவும். |
06:29 | இங்கு நாம், ஒரு rowல் உள்ள fieldகளின் அதிகபட்ச எண்ணிக்கையை கணக்கிடுகிறோம். மற்றும் கணக்கிடப்பட்ட மதிப்பை variable max_nf.ல் சேமிக்கிறோம். |
06:40 | NR என்பது, awkஆல் process செய்யப்பட்ட தற்போதைய records களின் எண்ணிக்கை ஆகும். NR ன் மதிப்பு, max_nr variable.லில் சேமிக்கப்படுகிறது. |
06:50 | Awk , input fileஐ , முதல் record ல் இருந்து கடைசி record வரை process செய்யும். |
06:56 | Awk முதல் recordஐ process செய்யும்போதுmax_nr , 1க்கு சமமாக இருக்கும். |
07:03 | இரண்டாவது recordஐ process செய்யும்போது, max_nr 2 ஆக இருக்கும். மேலும், இவ்வாறு அது தொடரும். |
07:11 | Awk கடைசி recordஐ process செய்யும்போது, max_nr recordகளின் மொத்த எண்ணிக்கையை சேமிக்கும். |
07:19 | இப்போது நாம், input file லில் இருந்து dataவை read செய்து, அந்த dataவை ஒரு two dimensional arrayனுள் சேமிக்கவேண்டும். |
07:26 | For loopனுள், நாம் iterator variable x.ஐ கொண்டிருக்கின்றோம். |
07:31 | x , ஒன்றிலிருந்து NFக்கு பயணிக்கும், மேலும் ஒவ்வொரு iterationக்கு பிறகு, x 1 அதிகரிக்கப்படும். |
07:39 | xன் ஒவ்வொரு மதிப்பிற்கும்$x(dollar x) , field x.ல் உள்ள மதிப்பை குறியீட்டுக்காட்டுகிறது. |
07:46 | index NR comma x.ல், array matrix ல் அந்த மதிப்பு சேமிக்கப்படும். |
07:53 | உதாரணத்திற்கு, input file.லில் இருந்து, index 1 comma 1 ல் உள்ள மதிப்பை, matrix of 1 comma 1 சேமிக்கிறது. |
08:02 | அதனால், இந்த codeஐ வைத்து, முழு input file ஐயும் awk process செய்த பிறகு, matrix array முழுமையாக உருவாக்கப்பட்டுவிடும். |
08:10 | அது, input file ன் முழு dataவையும், ஒரு two dimensional array formatல் சேமித்துவிடும். |
08:16 | இப்போது, END section. னுள் பார்ப்போம். |
08:20 | Matrixன் transpose ஐ print செய்ய, நாம் ஒரு nested for loop ஐ எழுதியுள்ளோம். |
08:25 | உங்களுக்கு அடிப்படை C programming பற்றி தெரிந்திருக்கும் என்று நான் அனுமானித்து கொள்கிறேன். அதனால், codeன் இந்த பாகத்தை நான் விவரமாக விளக்கப்போவதில்லை. |
08:34 | Codeஐ விவரமாக பார்க்க, காணொளியை இங்கு இடைநிறுத்தி, நீங்களே புரிந்துகொள்ளுங்கள். |
08:40 | இப்போது, ஒரு multidimensional array.ஐ ஸ்கேன் செய்யக்கற்போம். |
08:45 | உண்மையாக சொல்லப்போனால், Awkல் ஒரு multi-dimensional array இல்லை. |
08:50 | அதனால், multidimensional array. ஐ ஸ்கேன் செய்ய, எந்த தனிவகையான for statement உம் இருக்கமுடியாது. |
08:56 | ஒரு array.ஐ ஸ்கேன் செய்ய, multidimensional வழியை நீங்கள் கொண்டிருக்கலாம். |
09:00 | இதற்கு, for statement உடன் split function ஐ நீங்கள் ஒருங்கிணைக்கலாம். |
09:05 | split function என்றால் என்ன என்று பார்ப்போம். ஒரு stringஐ துண்டுகளாக வெட்டுவதற்கு அல்லது பிரிப்பதற்கு, split function பயன்படுத்தப்படுகிறது. |
09:14 | மேலும் அந்த பல்வேறு துண்டுகளை, அது ஒரு arrayயினுள் வைக்கிறது. |
09:18 | Syntax பின்வருமாறு. வெட்டப்படவேண்டிய stringஐ , முதல்argument கொண்டிருக்கிறது. |
09:25 | இரண்டாவது argument , split வெட்டிய துண்டுகளை போடும் array ன் பெயரை குறிப்பிடுகிறது. |
09:33 | மூன்றாவது argument , stringஐ வெட்ட பயன்படப்போகின்ற separator ஐ குறிப்பிடுகிறது. |
09:39 | முதல் துண்டு, arr 1ல் சேமிக்கப்படுகிறது. |
09:43 | இரண்டாவது துண்டு, arr 2ல் மேலும் பல. |
09:48 | ஏற்கனவே உருவாக்கப்பட்ட ஒரு arrayல் இருந்து, indexகளின் அசல் வரிசையை நாம் மீட்டெடுக்க வேண்டும் என்று வைத்துக்கொள்வோம். இதை எப்படி செய்வது? |
09:56 | multi_scan.awkஎன்று பெயரிடப்பட்ட codeஐ நான் எழுதியுள்ளேன். |
10:02 | முழு codeஉம், BEGIN sectionனுள் எழுதப்பட்டுள்ளது. |
10:06 | முதலில், a என்று பெயரிடப்பட்ட ஒரு array ஐ நாம் உருவாக்கி, இந்த மதிப்புகளை அதற்கு ஒதுக்கியுள்ளோம். |
10:12 | பின், ஒரு iteratorஉடன் for loop ஐ நாம் கொண்டுள்ளோம். |
10:16 | ஒவ்வொரு iterationக்கும், iterator ஒவ்வொரு indices valueகளுக்கும் set செய்யப்படும். உதாரணத்திற்கு, 1,1, பின், 1,2 , மேலும் பல. |
10:27 | split function , iterator ஐ துண்டுகளாக உடைக்கிறது. அவை SUBSEP.யினால் பிரிக்கப்பட்டிருக்கின்றன. |
10:34 | துண்டுகள், array arr.ல் சேமிக்கப்படும். |
10:38 | அதனால், arr[1] மற்றும் arr[2] , முதல்index மற்றும் இரண்டாவது index ஐ முறையே கொண்டிருக்கிறது. இந்த fileஐ செயல்படுத்துவோம். |
10:48 | Terminalக்கு மாறி, டைப் செய்க- awk space hyphen சிறியf space multi underscore scan dot awk . பின், Enter.ஐ அழுத்தவும். |
11:01 | Outputஐ பார்க்கவும். Indexகளின் அசல் வரிசை மீட்டெடுக்கப்பட்டுள்ளது. |
11:07 | சுருங்கச் சொல்ல. இந்த டுடோரியல் நாம் கற்றது- Awkல், ஒரு multidimensional arrayஐ உருவாக்குவது மற்றும் ஒரு multidimensional arrayஐ ஸ்கேன் செய்வது |
11:18 | பயிற்சியாக- ஒரு two dimensional array ஐ 90 டிகிரீக்கள் சுழற்றி மற்றும் சுழற்றப்பட்ட matrixஐ print செய்ய ஒரு awk script ஐ எழுதவும். |
11:28 | பின்வரும் இணைப்பில் உள்ள காணொளி, Spoken Tutorial திட்டத்தை சுருங்கச் சொல்கிறது. அதை தரவிறக்கி காணவும். |
11:36 | ஸ்போகன் டுடோரியல் திட்டக்குழு , ஸ்போகன் டுடோரியல்களை பயன்படுத்தி, செய்முறை வகுப்புகள் நடத்தி, இணையத்தில் பரீட்சை எழுதி தேர்வோருக்கு சான்றிதழ்கள் தருகிறது. |
11:45 | மேலும் விவரங்களுக்கு, எங்களுக்கு எழுதவும். |
11:49 | உங்கள் நேரமிடப்பட்ட கேள்விகளை, இந்த மன்றத்தில் முன்வைக்கவும். |
11:53 | ஸ்போகன் டுடோரியல் திட்டத்திற்கு பண ஆதரவு, இந்திய அரசாங்கத்தின், NMEICT, MHRD, மூலம் கிடைக்கிறது. மேலும் விவரங்களுக்கு, கீழ்கண்ட இணைப்பை பார்க்கவும். |
12:05 | இந்த டுடோரியலை தமிழாக்கம் செய்தது ஜெயஸ்ரீ, குரல் கொடுத்தது ரிஷிதா. கலந்துகொண்டமைக்கு நன்றி. |