Linux-AWK/C2/Built-in-Variables-in-awk/Telugu

From Script | Spoken-Tutorial
Jump to: navigation, search
Time
Narration
00:01 awk built-in variables and awk script పై స్పొకెన్ ట్యుటోరియల్ కు స్వాగతం.
00:07 ఈ ట్యుటోరియల్ లో మనం Built-in variables, awk script గురించి తెలుసుకుంటాం.
00:14 మనం దీనిని కొన్ని ఉదాహరణలతో చూద్దాం.
00:17 ఈ ట్యుటోరియల్ ని రెకార్డ్ చేయడానికి నేను ఉబంటులినక్స్ 16.04 ఆపరేటింగ్ సిస్టం మరియు జిఎడిట్ టెక్స్ట్ ఎడిటర్ 3.20.1 ని ఉపయోగిస్తున్నాను.
00:30 ఈ ట్యుటొరియల్ లో ఉపయోగించిన ఫైల్ లు ఈ ట్యుటొరియల్ పేజ్ లో ఉన్న Code Files లింక్ లో అందుబాటులో ఉన్నాయి. దయచేసి డౌన్లోడ్ చేసి సంగ్రహించండి.
00:40 ఈ ట్యుటొరియల్ ను అభ్యసించడానికి మీకు మా వెబ్సైట్ లోని మునుపటి awk ట్యుటొరియల్స్ పై అవగాహన ఉండాలి.
00:47 లేదంటే, తత్సంభంధిత ట్యుటొరియల్స్ కొరకు మా వెబ్ సైట్ ని సంప్రదించండి.
00:52 ముందుగా, మనం awk లో కొన్ని built-in variables ని చూద్దాం.
00:57 క్యాపిటల్ RS అనేది ఒక input ఫైల్ లో record separator ని పేర్కొంటుంది. అప్రమేయంగా, ఇది newline.
01:07 క్యాపిటల్ FS అనేది ఒక input ఫైల్ లో field separator ని పేర్కొంటుంది.
01:13 డీఫాల్ట్ గా FS విలువ అనేది ఒక whitespace.
01:18 క్యాపిటల్ ORS అనేది output record separator ని నిర్వచిస్తుంది. డీఫాల్ట్ గా అది newline.
01:27 క్యాపిటల్ OFS అనేది output field separator ని నిర్వచిస్తుంది. డీఫాల్ట్ గా అది whitespace.
01:36 మనం వీటిలో ప్రతి ఒక్కదాని అర్ధాన్ని అర్థం చేసుకుందాం.
01:40 ఇప్పుడు awkdemo ఫైల్ ను చూద్దాం.
01:44 మనం awk కమాండ్ తో ఈ awkdemo ఫైల్ ని ప్రాసెస్ చేసేటప్పుడు అది input ఫైల్ అవుతుంది.
01:51 అన్ని రెకార్డ్ లు ఒకదానితో ఒకటి ఒక newline character ద్వారా వేరుచేయబడ్డాయి అని గమనించండి.
01:58 newline అనేది record separator RS variable కొరకు డీఫాల్ట్ విలువ. అందువల్ల ఇంకేమీ చేయనవసరం లేదు.
02:08 అన్నిఫీల్డ్ లు pipe symbol ద్వారా వేరు చేయబడ్డాయని గమనించండి.

దాని గురించి మనం awk ఎలా తెలియజేయగలం? మనం చూద్దాం.

02:18 అప్రమేయంగా spaces లేదా tabs యొక్క ఏ సంఖ్య అయినా ఫీల్డ్‌లను వేరు చేస్తాయి.
02:24 మనం ఇంతకుముందు ట్యుటొరియల్ లో నేర్చుకున్నట్లు hyphen capital F ఎంపిక యొక్క సహాయంతో దీన్ని రీసెట్ చేయవచ్చు.
02:33 లేదంటే, మనం దీనిని BEGIN section లోని FS variable ను ఉపయోగించి రీసెట్ చేయవచ్చు.
02:40 దీనిని ఒక ఉదాహరణతో చేద్దాం. ఒకవేళ నేను 5000 రూపాయలకంటే ఎక్కువ ఉపకార వేతనం వచ్చే విద్యార్థుల పేర్లను తెలుసుకోవాలనుకుంటే,
02:51 CTRL, ALT మరియు T కీలను నొక్కి టర్మినల్ ను తెరవండి.
02:57 తరువాత, మీరు cd command ద్వారా డౌన్ లోడ్ చేసి సంగ్రహించిన Code Files ఉన్న ఫోల్డర్ కి వెళ్ళండి.
03:04 కమాండ్ ని ఇక్కడ చూపిన విధంగా టైప్ చేయండి.
03:08 ఇక్కడ BEGIN విభాగం లో మనం FS విలువని pipe symbol గా అస్సైన్ చేసాము. అదేవిధంగా మనం RS variable ని నవీకరించవచ్చు.
03:19 కమాండ్ అమలు పరచడానికి ఎంటర్ నొక్కండి.
03:23 5000 రూపాయలకంటే ఎక్కువ ఉపకార వేతనం వచ్చే విద్యార్థుల పేర్లజాబితాను చూపిస్తుంది.
03:30 ఇక్కడ name field మరియు stipend field ఒక ఖాళీ space తో వేరుపరచబడ్డాయి.
03:36 ఇంకా, అన్ని రెకార్డ్ లు కూడా newline character తో వేరుపరచబడ్డాయి.
03:42 మనం output field separator గా colon ను మరియు డబల్ newline ను output record separator గా కావాలనుకుంటున్నాం అనుకుందాం.
03:52 దీన్ని మనం ఎలా చేయగలం? చూద్దాం.
03:55 టర్మినల్ లో ఇంతకు ముందు అమలుచేసిన కమాండ్ ను పొందడానికి అప్ యారో కీ ని నొక్కండి.
04:01 ఇక్కడ చూపినవిధంగా కమాండ్ ని నవీకరించి ఎంటర్ నొక్కండి.
04:08 మనకు కావలసిన ఫార్మ్యాట్ లో ఔట్ పుట్ వస్తుంది.
04:12 ఇప్పుడు, ఒకవేళ మన కొత్త ఇన్ పుట్ ఫైల్ అనేది sample.txt ఐతే.
04:18 గమనించండి ఇక్కడ field separator అనేది newline మరియు record separator అనేది double newline.
04:27 మనం రోల్ నంబర్ మరియు పేరు సమాచారం ని ఈ ఫైల్ నుండి ఎలా వెలికితీయవచ్చు.
04:32 అవును, మీరు అనుకున్నది సరైనదే. మనం FS మరియు RS రెండూ variables ని నవీకరించాల్సి ఉంటుంది.
04:39 ఈ ట్యుటోరియల్ ని పాజ్ చేసి ఈ అస్సైన్ మెంట్ చేయండి.
04:43 తర్వాత, వేరే built-in variables ను చూద్దాం.
04:47 క్యాపిటల్ NR అనేది awk వల్ల ప్రాసెస్ అయిన Number of Records ని ఇస్తుంది.
04:53 క్యాపిటల్ NF అనేది ప్రస్తుత రెకార్డ్ లోని Number of Fields ని ఇస్తుంది.
04:59 ఒక ఉదాహరణను మనం చూద్దాం. మనం ఈ ఫైల్ లోని అసంపూర్ణంగా ఉన్న లైన్ లను కనుగొనాలనుకుంటున్నాం అనుకుందాం.
05:07 ఇక్కడ, అసంపూర్ణంగా అంటే అది 6 కంటే తక్కువ సాధారణ ఫీల్డ్స్ తో ఉండడం.
05:13 టర్మినల్ కు మారండి. నేను Ctrl మరియు L కీలను ఉపయోగించి దీనిని ఖాళీ చేస్తాను.
05:20 ఇక్కడ చూపిన విధంగా కమాండ్ ను టైప్ చేయండి.
05:24 ఫీల్డ్ లు pipe గుర్తు ద్వారా వేరుచేయబడ్డాయి కాబట్టి BEGIN విభాగం లో FS విలువను pipe గుర్తుకు సెట్ చేయండి.
05:33 తర్వాత మనం NF not equal to 6 అని రాసాం.
05:37 ఇది ప్రస్తుత లైన్ లో ఫీల్డ్ ల యొక్క సంఖ్య 6 కి సమానం కాదా అని తనిఖీ చేస్తుంది.
05:43 ఒకవేళ అది సత్యం ఐతే అపుడు print section, రెకార్డ్ యొక్క లైన్ నంబర్ NR ను $0 చేత సూచించబడిన మొత్తం లైన్ తో పాటు ముద్రిస్తుంది.

ఎంటర్ నొక్కండి.

05:55 అవుట్పుట్లో, రికార్డ్ నంబర్ 16 అనేది అసంపూర్ణ రోకార్డ్. ఇది 6 కి బదులుగా 5 ఫీల్డ్‌లు మాత్రమే కలిగిఉంది అని మనం చూడవచ్చు.
06:05 మనం మరో ఉదాహరణ చూద్దాం.

ఎన్ని ఫీల్డ్‌లు ఉన్నప్పటికీ, ప్రతి విద్యార్థికి మొదటి మరియు చివరి ఫీల్డ్ ను మనం ఎలా ముద్రించవచ్చు?

06:16 ఇక్కడ కనిపిస్తున్న కమాండ్ ని టర్మినల్ లో టైప్ చెయండి.
06:21 ఇక్కడ మనం ఫస్ వేరియబుల్ ని సెట్ చేయడానికి బదులుగా హైఫన్ క్యాపిటల్ F ఎంపికను ఉపయోగించాము.

ఎంటర్ నొక్కండి.

06:30 ఫైల్‌లోని ప్రతి రికార్డ్‌ కొరకు మనం మొదటి మరియు చివరి ఫీల్డ్‌లు మాత్రమే పొందుతాం.
06:36 ఇప్పుడు ఇంకేమైనా ప్రయత్నిదాం.
06:39 విద్యార్థి రికార్డులు అనేవి demo1.txt, demo2.txt అనే రెండు ఫైళ్ళలో పంపిణీ చేయబడతాయి అనుకుందాం.
06:48 మనం ఈ రెండు ఫైళ్ళ నుండి మొదటి 3 లైన్ లను ముద్రించాలనుకుంటున్నాము. దీనిని మనం NR వేరియబుల్ ను ఉపయోగించి చేయవచ్చు.
06:57 ఇక్కడ రెండు ఫైళ్ళ యొక్క కంటెంట్లు ఉన్నాయి.
07:02 ఇప్పుడు ప్రతి ఫైల్ నుండి మొదటి 3 లైన్ లను ప్రదర్శించడానికి, కింది కమాండ్ ను టెర్మినల్‌లో టైప్ చేయండి.
07:11 ఎంటర్ నొక్కండి.
07:13 అవుట్పుట్ అనేది demo1.txt ఫైల్ యొక్క మొదటి 3 రికార్డులను మాత్రమే చూపిస్తుంది.
07:20 రెండవ ఫైల్ కోసం కూడా దీనినే మనం ఎలా ప్రింట్ చేయవచ్చు?
07:24 దీనికి పరిష్కారం NR కు బదులుగా FNR ను ఉపయోగించడం

FNR అంటె ప్రస్తుత ఫైల్ లోని current record number.

07:34 ఒక క్రొత్త రికార్డ్ చదివిన ప్రతిసారీ FNR పెరుగుతుంది.
07:39 క్రొత్త ఇన్పుట్ ఫైల్ ప్రారంభించిన ప్రతిసారీ ఇది సున్నాకు తిరిగి ప్రారంభించబడుతుంది.
07:46 కానీ NR అనేది awk ప్రొగ్రాం ఎక్సిక్యుశన్ ప్రారంభిచినప్పటి నుండి ప్రాసెస్ చేసిన ఇన్ పుట్ రెకార్డ్ ల యొక్క సంఖ్య.
07:55 ఇది క్రొత్త ఫైల్‌తో సున్నాకి రీసెట్ చేయబడదు.
07:59 టర్మినల్ కు మారండి.

up arrow కీని నొక్కి ముందు ఎక్సిక్యుట్ చెసిన కమాండ్ ని పొందండి.

08:06 మునుపటి కమాండ్ ను క్రింది విధంగా సవరించండి.

NR కి బదులు FNR అని టైప్ చేయండి.

08:14 Print section, లో NR, తరువాత FNR టైప్ చెసి ఎంటర్ నొక్కండి.
08:21 చూడండి, ఇప్పుడు సరైన ఔట్ పుట్ వచ్చింది.

FNR క్రొత్త ఫైల్‌తో సున్నాకి సెట్ చేయబడింది, కానీ NR పెరుగుతూనే ఉంటుంది.

08:31 ఇప్పుడు వేరే built-in variables ని చూద్దాం.

FILENAME వేరియబుల్, చదువుతున్న ఫైల్ యొక్క పేరుని ఇస్తుంది.

08:40 ARGC, కమాండ్ లైన్ వద్ద అందించిన ఆర్గ్యుమెంట్స్ సంఖ్యను సూచిస్తుంది.
08:46 ARGV, కమాండ్ లైన్ అర్గ్యుమెంట్ లను స్టొర్ చేసె అర్రె ని సూచిస్తుంది.
08:52 ENVIRON అనేది shell environment variables యొక్క array ను మరియు దాని సంబంధిత విలువలను సూచిస్తుంది.
09:00 awk లో array ని ఉపయోగిస్తున్నందున ARGV మరియు ENVIRON లు. వాటిని మనం తరువాత టుటోరియల్స్ లో చూద్దా౦.
09:09 ఇప్పుడు FILENAME వేరియబల్ ని చూద్దా౦.

ప్రాసెస్ చేయబడుతున్న ప్రస్తుత ఫైల్ పేరును మనం ఎలా ప్రింట్ చేయవచ్చు?

09:18 టెర్మినల్ కు మారి, చూపిన విధంగా కమాండ్ ను టైప్ చేయండి.
09:23 ఇక్కడ మనం space ని string concatenation operator గా ఉపయోగించాము.

కమాండ్ ను అమలుచేయడానికి ఎంటర్ నొక్కండి.

09:32 అవుట్పుట్, ఇన్పుట్ ఫైల్ పేరు ను చాలాసార్లు చూపిస్తుంది.
09:37 ఇది ఎందుకంటే, ఈ కమాండ్ awkdemo.txt ఫైల్‌లోని ప్రతి రో కు ఒకసారి ఫైల్ పేరును ప్రింట్ చేస్తుంది.

మనం దీన్ని ఒక్కసారి మాత్రమె ఎలా ముద్రిందాలి?

09:48 టర్మినల్ ని క్లియర్ చేయండి.

మునుపు ఎక్సిక్యుట్ చేసిన కమాండ్ ను పొందడానికి అప్ యారో కీని నొక్కండి.

09:55 ఇక్కడ చూపిన విధంగా మునుపటి కమాండ్ ను సవరించండి.

ఎంటర్ నొక్కండి.

10:02 ఇప్పుడు, మనము ఫైల్ పేరును ఒక్కసారి మాత్రమే పొందుతాము.
10:06 ఇక్కడ awk లో మరికొన్ని built-in variables ఉన్నాయి.

వాటి గురించి మరింత తెలుసుకోవడానికి దయచేసి ఇంటర్నెట్‌ను బ్రౌజ్ చేయండి.

10:14 మనం, పాస్ అయ్యి రూ 8000 కంటే ఎక్కువ స్టైఫండ్ ఉన్న విద్యార్థులను కనుగొనాలని అనుకుందాం.
10:22 comma ని output field separator గా ఉపయోగించండి.

ఇంకా the data is shown for fileను మరియు ఫైల్ యొక్క పేరును footer section లో ప్రింట్ చేయండి. ఇది ఎలా చేయగలం?

10:36 టర్మినల్ లో ఇక్కడ చూపించినట్టు కమండ్ ని టైప్ చేసి ఎంటర్ నొక్కండి.
10:43 ఒక విద్యార్థి మాత్రమే పాస్ అయ్యి రూ. 8000 కన్నా ఎక్కువ స్టైఫండ్ పొందుతున్నట్లు మనం చూడవచ్చు.

మరియు రికార్డు సంఖ్య 2.

10:53 మనం కోరుకున్న విధంగా ఫైల్ పేరును కూడా footer లో చూడవచ్చు.
10:58 మనం awk ని చాలా చాలా క్లిష్టమైన పనుల కొరకు ఉపయోగించవచ్చు.
11:03 అలాంటప్పుడు, టెర్మినల్ పై ప్రతిసారీ కమాండ్స్ ను రాయడం మరింత కష్టమవుతుంది.
11:09 బదులుగా మనం awk ప్రోగ్రామ్‌ను ప్రత్యేక ఫైల్‌లో వ్రాయవచ్చు.
11:14 ఎగ్జిక్యూటబుల్ కావడానికి, ఆ ఫైల్‌కు dot awk ఎక్స్టెన్షన్ ఉండాలి.
11:19 అమలు చేస్తున్నప్పుడు, మనం ఈ awk ప్రోగ్రామ్ ఫైల్ పేరును awk కమాండ్ తో పేర్కొనవచ్చు.
11:26 అలా చేయడానికి, మనం hyphen small f ఎంపికను ఉపయోగించాలి.

ఒక ఉదాహరణ చూద్దా౦.

11:35 నెను ఇంతకుముందే ఒక awk ప్రోగ్రాం ని రాసి దానిని prog1 dot awk గా సేవ్ చేసి ఉంచాను.
11:42 ఈ ఫైల్ Code Files లింక్ లో అందుబాటులో ఉంది.
11:46 టర్మినల్ కి మారండి.

చివరిగా అమలు చేయబడిన కమాండ్ యొక్క సింగిల్ కోట్స్ లోపల మనం ఏమి వ్రాసాము చుడండి?

11:55 Prog1.awk ఫైల్ యొక్క కంటెంట్ సరిగ్గా అదే.
12:00 ఒకే ఒక్క తేడా ఏమిటంటే awk ఫైల్ లో మనం single quotes లోపల ఏమీ రాయలేదు.
12:07 దీనిని అమలు చేయడానికి, టర్మినల్ లో కింది కమాండ్ awk space hyphen small f space prog1.awk space awkdemo.txt ను టైప్ చేసి ఎంటర్ నొక్కండి.
12:24 మనకు ఇంతకు ముందువచ్చినట్టుగానే ఔట్ పుట్ వచ్చింది.
12:29 కనుక, ఈ విధంగా మనం awk ప్రోగ్రామ్‌లను వ్రాసి, వాటిని చాలాసార్లు ఉపయోగించవచ్చు.
12:35 ఇంతటి తో ఈ ట్యుటోరియల్ చివరికి వచ్చాం. సారాంశం చూద్దాం
12:40 ఈ ట్యుటోరియల్ లో మనం ‌- Built-in variables, awk script లను గురించి పలు ఉదాహరణలను ఉపయోగించి నేర్చుకున్నాం.
12:48 ఒక అస్సైన్మెంట్ ‌‌‌‌‌‌-awkdemo.txt file లో 5వ లైన్ లోని చివరి ఫీల్డ్ ను ప్రింట్ చేయడానికి ఒక awk స్క్రిప్ట్ ను రాయండి.
12:58 సిస్టమ్ ఫైల్ /etc/passwd ను terminal పై తెరవండి.
13:05 అక్కడ ఉన్న అన్ని separators లను గుర్తించండి.
13:09 ఇప్పుడు 20వ లైన్ నుండి ఫైల్ ను ప్రాసెస్ చేయడానికి ఒక script ని రాయండి.
13:15 అది కూడా 6 కంటే ఎక్కువ ఫీల్డ్‌లను కలిగి ఉన్న లైన్ ల కొరకు మాత్రమే.
13:20 మీరు నిర్దిష్ట పంక్తిలో line number, మొత్తం లైన్ మరియు ఫీల్డ్ ల యొక్క కౌంట్ ను ప్రింట్ చేయాలి.
13:28 ఈ లింక్ వద్ద అందుబాటులో ఉన్న వీడియో స్పోకన్ ట్యుటోరియల్ ప్రాజెక్ట్ యొక్క సారాంశాన్ని ఇస్తుంది. దయచేసి దీనిని డౌన్ లోడ్ చేసి చూడండి.
13:36 స్పొకెన్ ట్యుటొరియల్ ప్రాజెక్ట్ వర్క్ శాప్ లను నిర్వహిస్తుంది.ఆన్లైన్ పరీక్షలో పాసైన వారికి సర్టిఫికేట్లను ఇస్తుంది.
13:47 దయచేసి మీ సమయంతో కూడిన సందేహాలను ఈ ఫోరమ్ లో పోస్ట్ చేయండి.
13:51 స్పొకన్ టుటోరియల్ ప్రాజెక్ట్ కి ఎన్ ఎం ఈ ఐ సి టి, ఎం హెచ్ అర్ డి, భారత ప్రభుత్వం నిధులను సమకూర్చుతుంది. ఈ లింక్ లో ఈ మిషన్ గురించి మరింత సమాచారం ఉంది.
14:03 ఈ ట్యుటొరియల్ ని తెలుగులోకి అనువదించినది కరణం స్రవంతి. నేను ఉదయ లక్ష్మి మీ వద్ద సెలవు తీసుకుంటున్నాను మాతో చేరినందుకు ధన్యవాదములు.

Contributors and Content Editors

Madhurig, Simhadriudaya