Linux-AWK/C2/Built-in-Variables-in-awk/Tamil
From Script | Spoken-Tutorial
|
|
00:01 | Awkல் built-in variableகள் மற்றும் awk script. குறித்த ஸ்போகன் டுடோரியலுக்கு நல்வரவு. |
00:07 | இந்த டுடோரியலில் நாம், Built-in variableகள் மற்றும்awk script பற்றி கற்கப்போகிறோம். |
00:14 | இதை, சில உதாரணங்கள் மூலமாக நாம் செய்வோம். |
00:17 | இந்த டுடோரியலை பதிவு செய்ய நான், Ubuntu Linux 16.04 Operating System மற்றும் gedit text editor 3.20.1ஐ பயன்படுத்துகிறேன். |
00:30 | இந்த டுடோரியலில் பயன்படுத்தப்பட்டுள்ள fileகள், இந்த டுடோரியல் பக்கத்தில் உள்ள Code Files இணைப்பில் உள்ளது. அதை தரவிறக்கி பயன்படுத்திக்கொள்ளவும். |
00:40 | இந்த டுடோரியலை பயிற்சி செய்ய, இந்த வலைத்தளத்தில் உள்ள முந்தையawk டுடோரியல்களை நீங்கள் படித்திருக்க வேண்டும். |
00:47 | இல்லையெனில், இந்த வலைத்தளத்தில் உள்ள அதற்கான டுடோரியல்களை படிக்கவும். |
00:52 | முதலில், awkல் உள்ள சில built-in variableகளைப் பார்ப்போம். |
00:57 | Capital RS, ஒரு input fileலில் உள்ள record separatorஐ குறிப்பிடுகிறது. முன்னிருப்பாக, அது newline ஆகும். |
01:07 | Capital FS, ஒரு input fileலில் உள்ள field separatorஐ குறிப்பிடுகிறது. |
01:13 | முன்னிருப்பாக, FSன் மதிப்பு, ஒரு whitespace ஆகும். |
01:18 | Capital ORS, output record separatorஐ வரையறுக்கிறது. முன்னிருப்பாக, அது newline ஆகும். |
01:27 | Capital OFS, output field separatorஐ வரையறுக்கிறது. முன்னிருப்பாக, அது whitespace ஆகும். |
01:36 | இவை ஒவ்வொன்றின் பொருளையும் புரிந்துகொள்வோம். |
01:40 | இப்போது, awkdemo fileஐ பார்ப்போம். |
01:44 | இந்த awkdemo fileஐ , awk commandஉடன் நாம் process செய்யும் போது, இது நமது input file ஆகிறது. |
01:51 | ஒரு newline characterஇனால், எல்லா recordகளும் ஒன்றிலிருந்து ஒன்று பிரிக்கப்பட்டுள்ளன. |
01:58 | Record separator RS variable. க்கு, newline முன்னிருப்பான மதிப்பாகும். அதனால், வேறொன்றும் செய்யத்தேவையில்லை. |
02:08 | ஒரு pipe symbolஇனால், எல்லா fieldகளும் பிரிக்கப்பட்டுள்ளன என்பதை கவனிக்கவும். இதை awk க்கு எப்படி நாம் தெரியப்படுத்துவது? பார்ப்போம். |
02:18 | முன்னிருப்பாக, spaceகள் அல்லது tabகளின் எந்த எண்ணிக்கையும் fieldகளை பிரிக்கின்றன. |
02:24 | நமது முந்தைய டுடோரியல்களில் கற்றது போல், hyphen capital Fதேர்வின் உதவியுடன் இதை நாம் reset செய்யலாம். |
02:33 | அல்லது, FS variableஐ பயன்படுத்தி BEGIN section ல் நாம் இதை reset செய்யலாம். |
02:40 | இதை ஒரு உதாரணத்தின் மூலம் நாம் செய்வோம். ரூபாய், 5000க்கு மேல் உதவித்த்தொகை பெறுகின்ற மாணவர்களின் பெயர்களை நான் கண்டுபிடிக்க வேண்டும் என்று வைத்துக்கொள்வோம். |
02:51 | CTRL, ALT மற்றும்T keyகளை ஒன்றாக அழுத்தி, terminalஐ திறக்கவும். |
02:57 | cd command.ஐ பயன்படுத்தி, நீங்கள் தரவிறக்கி, extract செய்த Code Fileகளை வைத்துள்ள folderக்கு செல்லவும். |
03:04 | இங்கு காட்டப்பட்டுள்ளபடி, commandஐ டைப் செய்யவும். |
03:08 | இங்கு, BEGIN பிரிவில், FSன் மதிப்புக்கு ஒரு pipe symbol.ஐ நாம் ஒதுக்கியுள்ளோம். இவ்வாறே நாம், RS variable.ஐ மாற்றலாம். |
03:19 | Commandஐ செயல்படுத்த, Enterஐ அழுத்தவும். |
03:23 | ரூபாய் 5000க்கு மேல் உதவித்தொகை பெறுகின்ற மாணவர்களின் பட்டியலை output காட்டுகிறது. |
03:30 | இங்கு, name field மற்றும் stipend field, ஒரு காலி spaceஇனால் பிரிக்கப்பட்டுள்ளது. |
03:36 | மேலும், எல்லா recordகளும் ஒரு newline character.இனால் பிரிக்கப்பட்டுள்ளன. |
03:42 | Output field separator.ஆக, colon உம், output record separatorஆக double newline உம் இருக்கவேண்டும் என நாம் விரும்புகிறோம். |
03:52 | இதை எப்படி செய்யலாம்? பார்ப்போம். |
03:55 | முன்பு செயல்படுத்தப்பட்ட commandஐ பெற, terminalலில் up arrow keyஐ அழுத்தவும். |
04:01 | இங்கு காட்டப்பட்டுள்ளபடி commandஐ மாற்றவும். பின், Enter.ஐ அழுத்தவும். |
04:08 | நாம் விரும்பிய formatல் output கிடைக்கிறது. |
04:12 | இப்போது, நமது புதிய input file, sample.txt. என வைத்துக்கொள்வோம். |
04:18 | இங்கு, field separator newline ஆகவும், record separator double newline.ஆகவும் இருப்பதை கவனிக்கவும். |
04:27 | இந்த fileலில் இருந்து roll number மற்றும் பெயரை எப்படி நாம் extract செய்வது? |
04:32 | ஆம். நீங்கள் சரியாக ஊகித்துவிட்டீர்கள். FS மற்றும் RS variableகள் இரண்டையும் நாம் மாற்றவேண்டும். |
04:39 | இந்த டுடோரியலை இடைநிறுத்தி, இதை ஒரு பயிற்சியாக செய்யவும். |
04:43 | அடுத்து, மற்ற built-in variableகளைப் பார்ப்போம். |
04:47 | Capital NR, awkவினால் process செய்யப்பட்ட Number of Recordsஐ காட்டுகிறது. |
04:53 | Capital NF, தற்போதைய recordல் உள்ள Number of Fields ஐ காட்டுகிறது. |
04:59 | இது குறித்த ஒரு உதாரணத்தை நாம் பார்ப்போம். Fileலில் உள்ள முடிவு பெறாத வரிகளை நாம் கண்டுபிடிக்க வேண்டும் என்று வைத்துக்கொள்வோம். |
05:07 | இங்கு, முடிவு பெறாத வரி என்பது, சாதாரணமான 6 fieldகளை விட குறைவாக கொண்டது என்று பொருளாகும். |
05:13 | Terminalக்கு திரும்பவும். Ctrl மற்றும்L keyகளை வைத்து, terminalஐ clear செய்கிறேன். |
05:20 | கட்டப்பட்டுள்ளபடி, commandஐ டைப் செய்யவும். |
05:24 | Fieldகள் pipe இனால் பிரிக்கப்பட்டுள்ளதால், BEGIN section.ல், FSன் மதிப்பை pipe குறியீட்டுக்கு set செய்யவும். |
05:33 | அடுத்து, NF not equal to 6 என நாம் எழுதியுள்ளோம். |
05:37 | இது, தற்போதைய வரியில் உள்ள fieldகளின் எண்ணிக்கை, 6க்கு சமமாக இல்லாமல் இருக்கிறதா என்று சரிபார்க்கிறது. |
05:43 | அது சரியெனில், $0இனால் குறிக்கப்பட்ட முழு வரியுடன், recordன் வரி எண், NRஐ , print section print செய்கிறது. Enterஐ அழுத்தவும். |
05:55 | Outputல், record எண் 16 , முடிவு பெறாத record ஆகும் என்பதை நாம் காணலாம். அது, 6க்கு பதிலாக 5 fieldகளை மட்டுமே கொண்டிருக்கிறது. |
06:05 | மேலும் ஒரு உதாரணத்தை காண்போம். Fieldsகளின் எண்ணிக்கையை பொருட்படுத்தாமல், ஒவ்வொரு மாணவருக்கும், முதல் மற்றும் கடைசி field ஐ எவ்வாறு நாம் print செய்வது? |
06:16 | Terminalலில் காட்டப்பட்டுள்ளபடி commandஐ டைப் செய்யவும். |
06:21 | இங்கு, FS variableஐ set செய்வதற்கு பதிலாக நாம், hyphen capital F தேர்வை பயன்படுத்தியுள்ளோம். Enterஐ அழுத்தவும். |
06:30 | Fileலில் உள்ள ஒவ்வொரு recordக்குமான, முதல் மற்றும் கடைசி fieldகளை மட்டும் நாம் பெறுகிறோம். |
06:36 | இப்போது, வேறொன்றை முயற்சிப்போம். |
06:39 | demo1.txt, demo2.txt இரண்டு fileகளிலும், மாணவர்களின் recordகள் உள்ளன என்று வைத்துக்கொள்வோம். |
06:48 | இந்த இரண்டு fileகள் ஒவ்வொன்றிலிருந்தும், முதல் 3 வரிகளை நாம் print செய்ய விரும்புகிறோம். NR variableஐ பயன்படுத்தி இதை நாம் செய்யலாம். |
06:57 | இவை, இரண்டு fileகளிலும் உள்ள உள்ளுறையாகும். |
07:02 | இப்போது, ஒவ்வொரு fileலில் இருந்தும், முதல் 3 வரிகளை காட்ட, terminal.லில் பின்வரும் commandஐ டைப் செய்யவும். |
07:11 | Enterஐ அழுத்தவும். |
07:13 | demo1.txt fileமுதல் 3 recordகளை மட்டும், output காட்டுகிறது. |
07:20 | இரண்டாவது fileக்கும் இதையே நாம் எப்படி print செய்வது? |
07:24 | அதற்கான தீர்வு, NRக்கு பதிலாக, FNRஐ பயன்படுத்தவேண்டும். FNR, தற்போதைய fileலில் உள்ள, current record number ஆகும். |
07:34 | ஒவ்வொரு முறை ஒரு புதிய record படிக்கப்படும் போது, FNR அதிகப்படுத்தப்படுகிறது. |
07:39 | ஒவ்வொரு முறை, ஒரு புதிய input file தொடங்கும் போது, அது பூஜ்யத்திற்குreinitialize செய்யப்படுகிறது. |
07:46 | ஆனால், programன் செயல்படுத்துதலின் தொடக்கத்திலிருந்து, awk process செய்த recordகளின் எண்ணிக்கையேNR ஆகும். |
07:55 | ஒரு புதிய fileக்கு அது பூஜ்யத்திற்கு reset ஆகாது. |
07:59 | Terminalக்கு திரும்பவும். முன்பு செயல்படுத்தப்பட்ட commandஐ பெற, up arrow keyஐ அழுத்தவும். |
08:06 | முந்தைய commandஐ பின்வருமாறு மாற்றவும். NR.க்கு பதிலாக, FNR என டைப் செய்யவும். |
08:14 | Print section,ல், NR,க்கு அடுத்து, டைப் செய்க: FNR. Enter.ஐ அழுத்தவும். |
08:21 | இப்போது, சரியான outputஐ நாம் பெறுகிறோம். புதிய fileக்கு , FNR பூஜ்யத்திற்கு set செய்யப்படுகிறது, ஆனால் NR, அதிகரித்துக்கொண்டே இருக்கிறது. |
08:31 | இப்போது, மற்ற சில built-in variableகளைப் பார்ப்போம். Read செய்யப்பட்டு கொண்டிருக்கின்ற fileன் பெயரை, FILENAME variable கொடுக்கிறது. |
08:40 | ARGC, command lineலில் கொடுக்கப்பட்டுள்ள argumentகளின் எண்ணிக்கையை குறிப்பிடுகிறது. |
08:46 | ARGV, command line argumentகளை சேமிக்கின்ற ஒரு array ஐ குறித்துக்காட்டுகிறது. |
08:52 | ENVIRON, shell environment variableகளின் array ஐயும், மற்றும் அதற்குரிய மதிப்புகளையும் குறித்துக்காட்டுகிறது. |
09:00 | ARGV மற்றும்ENVIRON, awkல் arrayஐ பயன்படுத்துவதனால், அடுத்தடுத்த டுடோரியல்களில், நாம் அவற்றை பார்ப்போம். |
09:09 | இப்போது, variable FILENAMEஐ பார்ப்போம். தற்போது process செய்யப்பட்டு கொண்டிருக்கின்ற fileன் பெயரை எப்படி நாம் print செய்வது? |
09:18 | Terminalக்கு மாறி, காட்டப்பட்டுள்ளபடி commandஐ டைப் செய்யவும். |
09:23 | இங்கு நாம், space ஐ ஒரு string concatenation operator.ஆக பயன்படுத்தியுள்ளோம். Commandஐ செயல்படுத்த Enterஐ அழுத்தவும். |
09:32 | Output, input filename ஐ பல முறைகள் காட்டுகிறது. |
09:37 | இது ஏனெனில், awkdemo.txt fileலில் உள்ள ஒவ்வொரு rowக்கும், இந்த command, fileன் பெயரை ஒரு முறை print செய்கிறது. இதை ஒரு முறை மட்டும் எப்படி print செய்வது? |
09:48 | Terminalஐ clear செய்யவும். முன்பு செயல்படுத்தப்பட்ட commandஐ பெற, up arrow keyஐ அழுத்தவும். |
09:55 | இங்கு காட்டப்பட்டுள்ளபடி, முந்தைய commandஐ மாற்றவும். Enterஐ அழுத்தவும். |
10:02 | இப்போது நாம், fileன் பெயரை ஒரு முறை மட்டுமே பெறுகிறோம். |
10:06 | Awkல், வேறு சில built-in variableகள் உள்ளன. அவற்றை பற்றி மேலும் தெரிந்துகொள்ள, இணையத்தை பார்க்கவும். |
10:14 | தேர்ச்சி பெற்ற மற்றும் ரூபாய் 8000க்கும் அதிகமாக உதவித்தொகையை பெறுகின்ற மாணவர்களை நமக்கு கண்டுபிடிக்க வேண்டும் என்று வைத்துக்கொள்வோம். |
10:22 | Output field separatorஆக comma வை பயன்படுத்தி, “The data is shown for file”என்பதையும் fileன் பெயரையும் footer sectionல் print செய்யவும். இதை எப்படி செய்வது? |
10:36 | Terminalலில் பின்வரும் commandஐ டைப் செய்யவும். Enterஐ அழுத்தவும். |
10:43 | ஒரு மாணவர் மட்டுமே, தேர்ச்சி பெற்று மற்றும் ரூபாய் 8000க்கும் மேல் உதவித்தொகை பெறுகிறார் என்பதை நாம் காணலாம். மற்றும் recordன் எண் 2 ஆகும். |
10:53 | நாம் விரும்பியபடி, footerல் fileன் பெயரையும் நாம் காணலாம். |
10:58 | நாம் awkஐ , மேலும் சிக்கலான வேலைகளுக்கு பயன்படுத்தலாம். |
11:03 | அச்சூழ்நிலையில், terminalலில் ஒவ்வொரு முறையும் commandகளை எழுதுவது மேலும் கடினமாகிறது. |
11:09 | அதற்கு பதிலாக, நாம் awk programஐ ஒரு தனி fileலில் எழுதலாம். |
11:14 | செயல்படுத்த, அந்த file , dot awk நீட்டிப்பை கொண்டிருக்கவேண்டும். |
11:19 | செயல்படுத்தும் போது, awk command.உடன், இந்த awk program fileன் பெயரை நாம் குறிப்பிடலாம். |
11:26 | அதைச் செய்ய நாம், hyphen small f தேர்வை பயன்படுத்தவேண்டும். ஒரு உதாரணத்தை பார்ப்போம். |
11:35 | நான் ஏற்கனவே ஒரு awk programஐ எழுதி, அதை prog1 dot awk. என சேமித்துள்ளேன். |
11:42 | இந்த code, Code Files இணைப்பிலும் உள்ளது. |
11:46 | Terminalக்கு மாறவும். இறுதியாக செயல்படுத்தப்பட்ட command ன் single quoteகளினுள் நாம் என்ன எழுதியுள்ளோம் என்பதை பார்க்கவும். |
11:55 | prog1.awk fileன் உள்ளுறை அதுவே ஆகும். |
12:00 | Awk fileலில், நாம் single quotes.களினுள் எழுதவில்லை என்பது மட்டுமே வேறுபாடு ஆகும். |
12:07 | Fileஐ செயல்படுத்த, terminalலில் பின்வருவனவற்றை டைப் செய்யவும்- awk space hyphen small f space prog1.awk space awkdemo.txt . பின், Enterஐ அழுத்தவும். |
12:24 | நாம் முன்பு பார்த்த அதே outputஐ பெறுகிறோம். |
12:29 | இவ்வழியில், நீங்கள் awk programகளை எழுதி, அதை பல முறைகள் பயன்படுத்தலாம். |
12:35 | இத்துடன் நாம் இந்த டுடோரியலின் முடிவுக்கு வந்துவிட்டோம். சுருங்கச் சொல்ல, |
12:40 | இந்த டுடோரியல் நாம் கற்றது: பல்வேறு உதாரணங்களை பயன்படுத்தி, Built-in variableகள் மற்றும் awk script |
12:48 | பயிற்சியாக- awkdemo.txt fileலில், ஐந்தாவது வரியின் கடைசி ஐ print செய்வதற்கான ஒரு awk scriptஐ எழுதவும். |
12:58 | Terminalலில், /etc/passwd ஐ திறக்கவும். |
13:05 | அங்குள்ள எல்லா separatorகளையும் அடையாளம் காணவும். |
13:09 | இப்போது, இருபதாவது வரியிலிருந்து fileஐ process செய்வதற்கான ஒரு script ஐ எழுதவும். |
13:15 | அதுவும், ஆறுக்கும் அதிகமான fieldகளை கொண்ட வரிகளுக்கு மட்டும். |
13:20 | அந்த குறிப்பிட்ட வரியில், line number, முழு வரி மற்றும் fieldகளின் எண்ணிக்கையை நீங்கள் print செய்யவேண்டும். |
13:28 | பின்வரும் இணைப்பில் உள்ள காணொளி, Spoken Tutorial திட்டத்தை சுருங்கச் சொல்கிறது. அதை தரவிறக்கி காணவும். |
13:36 | ஸ்போகன் டுடோரியல் திட்டக்குழு, ஸ்போகன் டுடோரியல்களை பயன்படுத்தி, செய்முறை வகுப்புகள் நடத்தி, சான்றிதழ்கள் தருகிறது. மேலும் விவரங்களுக்கு எங்களுக்கு எழுதவும். |
13:47 | உங்கள் கேள்விகளை, இந்த மன்றத்தில் முன்வைக்கவும். |
13:51 | ஸ்போகன் டுடோரியல் திட்டத்திற்கு பண ஆதரவு, இந்திய அரசாங்கத்தின், NMEICT, MHRD, மூலம் கிடைக்கிறது. மேலும் விவரங்களுக்கு, கீழ்கண்ட இணைப்பை பார்க்கவும். |
14:03 | இந்த ஸ்கிரிப்ட், அந்தராவினால் வழங்கப்பட்டுள்ளது. விடை பெற்றுக்கொள்வது, ஐ ஐ டி பாம்பேயிலிருந்து பிரவீன். கலந்துகொண்டமைக்கு நன்றி. |