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

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
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 இந்த டுடோரியலை தமிழாக்கம் செய்தது ஜெயஸ்ரீ, குரல் கொடுத்தது ரிஷிதா. கலந்துகொண்டமைக்கு நன்றி.

Contributors and Content Editors

Jayashree