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

From Script | Spoken-Tutorial
Revision as of 22:51, 17 July 2019 by Madhurig (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Time
Narration
00:01 awk లో multidimensional arrays ను సృష్టించడం పై స్పొకన్ టుటోరియల్ కు స్వాగతం.
00:07 ఈ టుటోరియల్ లో మనం awk లో multidimensional arrays ని సృష్టించడం,

ఒక multidimensional array ని స్కాన్ చేయడం నేర్చుకుంటాం.

00:18 మనం దీనిని కొన్ని ఉదాహరణల ద్వారా చేద్దాం.
00:21 ఈ టుటోరియల్ ను రికార్డ్ చేయడం కొరకు నేను Ubuntu Linux 16.04 Operating System మరియు gedit text editor 3.20.1 లను వాడుతున్నాను.
00:33 మీకు నచ్చిన ఏ ఇతర టెక్స్ట్ ఎడిటర్ ను అయినా మీరు ఉపయోగించవచ్చు.
00:37 ఈ ట్యుటొరియల్ ను అభ్యసించడానికి మీకు మా వెబ్సైట్ లోని మునపటి array పై awk ట్యుటొరియల్స్ యొక్క అవగాహన ఉండాలి.
00:45 మీకు ఏదైనా ఒక ప్రోగ్రామింగ్ భాష C లేదా C++ లాంటి వాటిపై కనీస అవగాహన ఉండాలి.
00:52 లేదంటే, మా వెబ్ సైట్ లో ఉన్న తత్సంభంధిత టుటోరియల్ లను చూడగలరు.
00:58 ఈ ట్యుటొరియల్ లో ఉపయోగించిన ఫైల్ లు ఈ ట్యుటొరియల్ పేజ్ లో ఉన్న Code Files లింక్ లో అందుబాటులో ఉన్నాయి. దయచేసి డౌన్లోడ్ చేసి ఎక్స్ ట్రాక్ట్ చేయండి.
01:08 awk లో multidimensional arrays అంటే ఏమిటి?
01:12 single dimensional arrays లో, అర్రె ఎలిమెంట్ అనేది ఒక సింగిల్ ఇండెక్స్ తో గుర్తించబడుతుందని మనకు తెలుసు.
01:19 ఉదాహరణకి, array week అనేది day అనే సింగిల్ ఇండెక్స్ తో గుర్తించబడుతుంది.
01:26 ఏమైనప్పటికి, multidimensional array లో, ఒక ఎలిమెంట్ అనేది ముల్టీపుల్ indices యొక్క ఒక క్రమం ద్వారా గుర్తించబడుతుంది.
01:34 ఉదాహరణకి, ఒక టూ డైమెన్షనల్ అర్రె ఎలిమెంట్ అనేది, 2 indices యొక్క ఒక క్రమం ద్వారా గుర్తించబడుతుంది.
01:42 ఇక్కడ, మల్టిపుల్ ఇండిసెస్ లు అనేవి ఒక సింగల్ string లోనికి వాటి మధ్య ఒక సెపరేటర్ తో జతచేరుతాయి.
01:50 సపరేటర్ అనేది built-in variable SUBSEP యొక్క విలువ.
01:55 ఒక సాధారణ one dimensional array కొరకు ఈ జతచేరిన string అనేది ఒక సింగల్ index గా ఉపయోగించబడుతుంది.
02:01 ఉదాహరణకి, మనము multi square brackets లోపల 4 కామా 6 equal to double quotes లోపల value ని వ్రాసాము అనుకుందాం.
02:11 ఇక్కడ multi అనేది మల్టి డైమెన్షనల్ అర్రె యొక్క పేరు. తర్వాత, 4 మరియు 6 నంబర్లు ఒక స్ట్రింగ్ కు మార్చబడతాయి.
02:21 SUBSEP విలువ అనేది hash symbol (#)అని అనుకుందాం.
02:26 తర్వాత, ఆ నంబర్ల వాటి మధ్య ఒక hash symbol (#) తో జతచేరుతాయి.
02:32 కనుక, array element multi, square brackets లోపల double quotes లోపల 4 hash 6 అనేది డబుల్ కోట్స్ లోపలి విలువకు సెట్ చేయబడింది.
02:43 SUBSEP యొక్క డీఫాల్ట్ విలువ అనేది string, double quotes లోపల backslash 034.
02:50 ఇది నిజానికి ఒక non-printing character. ఇది చాలావరుకు ఇన్ పుట్ డేటాలలో కనిపించదు.
02:58 మనం ఈ స్లైడ్ లో చూపినవిధంగా టూ డైమెన్షనల్ అర్రె ని డిక్లేర్ చేయడానికి ప్రయత్నిద్దాం.
03:03 రో 1 అనేది రెండు ఎలిమెంట్స్ A మరియు B లను కలిగిఉంది.
03:08 రో 2 అనేది రెండు ఎలిమెంట్స్ C మరియు D లను కలిగిఉంది.
03:12 Ctrl, Alt మరియు T లను నొక్కి టర్మనల్ ను తెరవండి.
03:17 మీరు cd command ద్వారా డౌన్ లోడ్ చేసి సంగ్రహించిన Code Files ఫోల్డర్ కి వెళ్ళండి.
03:24 ఇప్పుడు అర్రె ని ఈ క్రింది విధంగా నిర్వచిద్దాం. ఇక్కడ చూపినవిధంగా కమాండ్ ని జాగ్రత్తగా టైప్ చేద్దాం. తర్వాత ఎంటర్ నొక్కండి.
03:35 మనకు ఏ ఎర్రర్ లేకుండా command prompt తిరిగి వచ్చింది. కనుక, అర్రె నిర్వచించబడింది.
03:41 కోడ్‌లో ప్రింట్ చేయడానికి మనము ఏమీ ఇవ్వనందున మనకు ఎటువంటి అవుట్పుట్ లభించదు.
03:47 మనం ప్రింట్ స్టేట్మెంట్ ను చేర్చుదాం.
03:50 టర్మినల్ లో మునుపు అమలుచేసిన కమాండ్ ను పొందడానికి అప్ యారో కీ ని నొక్కండి.
03:56 కమాండ్ ను అమలుచేయడానికి క్లోసింగ్ curly bracket కంటే ముందు, semicolon స్పేస్ print స్పేస్ a square brackets లోపల 2 comma 2 అని టైప్ చేసి ఎంటర్ నొక్కండి.
04:13 గమనించండి, మనము అవుట్పుట్ ను క్యాపిటల్ Dగా పొందుతాము.
04:18 ఇచ్చిన multidimensional array లో ఒక నిర్దిష్ట index sequence ఉందా అని ఎలా పరీక్షించాలి?
04:25 మనం in operatorని ఉపయోగించవచ్చు.
04:28 ఈ సిరీస్‌లో ఇంతకుముందు సింగిల్-డైమెన్షనల్ అర్రే టుటోరియల్ లో మనం దీనిని చూశాము.
04:34 మనం indices యొక్క మొత్తం క్రమాన్ని parentheses లలో వ్రాసి కామాలతో వేరు చేయాలి.
04:42 దీనిని ఒక ఉదాహరణలో చూద్దాం.
04:45 నేను ఇప్పటికే test_multi.awk పేరు తో స్క్రిప్ట్ ని రాసి ఉంచాను.
04:51 ఈ ట్యుటోరియల్ పేజీ యొక్క కోడ్ ఫైల్స్ లింక్‌లో ఇదే అందుబాటులో ఉంది.
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 ని ప్రింట్ చేస్తుంది.
05:23 లేదా అది one comma one is absent అని ప్రింట్ చేస్తుంది.
05:28 అదేవిధంగా, మనం index three comma one వద్ద element ఉందో లేదో తనిఖీ చేస్తాము. ఫైల్‌ని అమలు చేద్దాం.
05:36 టర్మినల్ కు మారి awk space hyphen small f space test underscore multi dot awk అని టైప్ చేసి ఎంటర్ నొక్కండి.
05:49 ఔట్ పుట్ లో one comma one is present మరియు three comma one is absent అని కనిపిస్తుంది.
05:55 ఇంకొక ఉదాహరణను తీసుకుందాం.

మనం ఒక matrix యొక్క transpose ను సృష్టించాలనుకుంటున్నాము.

06:02 ఇచ్చిన matrix యొక్క transpose అనేది ఒక matrix యొక్క rows మరియు columns లను పరస్పరం మార్పిడి చేయడం ద్వారా ఏర్పడుతుంది. దీన్ని మనం ఎలా చేయగలం?
06:11 నేను 2D-array.txt ఫైల్ లో ఒక two-dimensional array matrix క్రియేట్ చేసాను.
06:19 నేను transpose.awk అనే కోడ్ ను రాశాను.
06:24 మొదట ఈ awk script యొక్క action section ను చూడండి.
06:29 ఇక్కడ మనం ఒక రో లోని ఫీల్డ్స్ యొక్క గరిష్ట సంఖ్యను లెక్కిస్తున్నాము. మరియు లెక్కించిన విలువను variable max_nf లో నిల్వ చేస్తుంది.
06:40 మనకు తెలిసినట్లుగా, NR అనేది awk చేత ప్రాసెస్ చేయబడిన ప్రస్తుత రికార్డుల యొక్క సంఖ్య. NR విలువ max_nr variable లో నిల్వచేయబడుతుంది.
06:50 Awk, input file ని మొదటి record నుండి చివరి record వరకు ప్రాసస్ చేస్తుంది.
06:56 Awk మొదటి రికార్డ్ ను ప్రాసెస్ చేస్తున్నప్పుడు, max_nr అనేది 1 కు సమానం అవుతుంది.
07:03 రెండవ record ను ప్రాసెస్ చేస్తున్నప్పుడు, max_nr 2 అవుతుంది మరియు ఇది ఈ విధంగా కొనసాగుతుంది.
07:11 awk చివరి record ను ప్రాసెస్ చేస్తున్నప్పుడు, max_nr మొత్తంరికార్డుల యొక్క సంఖ్యను నిల్వ చేస్తుంది.
07:19 ఇప్పుడు మనం input file నుండి డేటాను చదివి ఆ డేటాను ఒక two dimensional array లో నిల్వ చేయాలి.
07:26 for loop లోపల, మనకు iterator variable x ఉంది.
07:31 x ఒకటి నుండి NF వరకు వెళుతుంది, మరియు ప్రతి iteration తర్వాత x 1 పెరుగుతుంది
07:39 x, $x(dollar x) యొక్క ప్రతి విలువకు, ఫీల్డ్ x వద్ద విలువను సూచిస్తుంది.
07:46 ఆ విలువ array matrix లో index NR కామా x వద్ద నిల్వచేయబడుతుంది.
07:53 ఉదాహరణకు, matrix of 1 comma 1 అనేది input file నుండి index 1 comma 1 వద్ద ప్రస్తుతం ఉన్న విలువను నిల్వ చేస్తుంది.
08:02 కనుక, awk ఈ కోడ్‌తో మొత్తం input fileను ప్రాసెస్ చేసిన తరువాత, matrix array సంపూర్ణంగా తయారు అవుతుంది.
08:10 ఇది input file యొక్క మొత్తం డాటాని two dimensional array ఫార్ మ్యాట్ లో నిల్వ చేస్తుంది.
08:16 ఇప్పుడు, మనం END section లోపల చూద్దాం.
08:20 matrix యొక్క transpose ను ముద్రించడానికి మనం ఒక nested for loop ను వ్రాసాము.
08:25 నేను, మీకు బేసిక్ C programming గురించి కనీస అవగాహన ఉందనుకుంటున్నాను.

కనుక, నేను కోడ్ యొక్క ఈ భాగాన్ని వివరంగా వివరించడం లేదు.

08:34 కోడ్‌ను వివరంగా చూడటానికి మరియు మీ స్వంతంగా అర్థం చేసుకోవడానికి ఇక్కడ వీడియోను పాజ్ చేయండి.
08:40 ఇప్పుడు, మనం ఒక మల్టీ డైమెన్షనల్ అర్రేను ఎలా స్కాన్ చేయాలో నేర్చుకుంటాము.
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 అంటే ఏమిటో చూద్దాం.

split function ను కత్తిరించడానికి లేదా ఒక స్ట్రింగ్ ను ముక్కలుగా విభజించడానికి ఉపయోగిస్తారు.

09:14 ఇంకా ఆ వేర్వేరు ముక్కలను ఒక array లో ఉంచండి.
09:18 సింటాక్స్ ఈ క్రింది విధంగా ఉంటుంది. మొదటి argument అనేది విభజించాల్సిన string ను కలిగి ఉంటుంది.
09:25 రెండవ argument అనేది విభజించిన భాగాలను split ఎక్కడ ఉంచాలో ఆ array యొక్క పేరును పేర్కొంటుంది.
09:33 మూడవ argument అనేది, separator ను ప్రస్తావిస్తుంది. అది string ని విభజించడానికి ఉపయోగించబడుతుంది.
09:39 మొదటి భాగం arr 1 లో నిల్వ చేయబడుతుంది.
09:43 రెండవ భాగం arr 2 లో ఆపై ఆలా ముందుకు సాగుతుంది.
09:48 మనం ఇప్పటికే సృష్టించిన array నుండి indices యొక్క అసలు క్రమాన్ని తిరిగి పొందాలనుకుంటున్నాం అనుకుందాం. దీన్ని మనం ఎలా చేయగలం?
09:56 నేను multi_scan.awk అనే కోడ్ ను రాశాను.
10:02 మొత్తం కోడ్ BEGIN section లోపల వ్రాయబడింది.
10:06 మొదట మనం a అనే పేరుతో ఒక array ను సృష్టించాము మరియు దానికి ఈ విలువలను కేటాయించాము.
10:12 తరువాత మనకు for loop తో ఒక iterator ఉంది.
10:16 ప్రతి iteration కొరకు, ప్రతీ ఒక్క indices values కు iterator అనేది సెట్ చేయబడుతుంది.

1,1 తరువాత 1,2 .. ఆపై అలా.

10:27 split function, iterator ని SUBSEP ద్వారా వేరుచేసిన ప్రత్యేక విభాగాలుగా విచ్ఛిన్నంచేస్తుంది.
10:34 ఈ విభాగాలు array arr లో నిల్వ చేయబడతాయి.
10:38 కనుక, arr[1] మరియు arr[2] అనేవి వరుసగా మొదటి మరియు రెండవ index లను కలిగి ఉంటాయి.

ఈ ఫైల్ ని అమలు చేద్దాం.

10:48 టర్మినల్ కి మారి awk space hyphen small f space multi underscore scan dot awk అని టైప్ చేసి ఎంటర్ నొక్కండి.
11:01 అవుట్పుట్ చూడండి; indices యొక్క అసలు క్రమం తిరిగి పొందబడుతుంది.
11:07 సారాంశం చూద్దాం: ఈ టుటోరియల్ లో మనం awk లో multidimensional array ని క్రియేట్ చేయడం మరియు ఒక multidimensional array ని స్కాన్ చేయడం గురించి నేర్చుకున్నాం.
11:18 ఒక అసైన్మెంట్ గా, ఒక two dimensional array ని 90 డిగ్రీ లు త్రిప్పడానికి మరియు ఆ త్రిప్పిన matrix ను ప్రింట్ చేయడానికి ఒక awk script ను వ్రాయండి.
11:28 ఈ లింక్ వద్ద అందుబాటులో ఉన్న వీడియో స్పోకన్ ట్యుటోరియల్ ప్రాజెక్ట్ యొక్క సారాంశాన్ని ఇస్తుంది. దయచేసి దానిని డౌన్ లోడ్ చేసి చూడండి.
11:36 స్పొకన్ ట్యుటొరియల్ ప్రాజెక్ట్ వర్క్ షాప్ లను నిర్వహిస్తుంది. ఆన్లైన్ పరీక్షలో పాసైన వారికి సర్టిఫికేట్లను ఇస్తుంది.
11:45 మరింత సమాచారం కోసం మాకు రాయండి.
11:49 దయచేసి మీ సమాయంతో కూడిన సందేహాలను ఈ ఫోరమ్ లో పోస్ట్ చేయండి.
11:53 స్పొకన్ ట్యుటొరియల్ ప్రాజెక్ట్ కి ఎన్ ఎం ఈ ఐ సి టి, ఎం హెచ్ అర్ డి, భారత ప్రభుత్వం నిధులను సమకూర్చుతుంది. ఈ లింక్ లో ఈ మిషన్ గురించి మరింత సమాచారం ఉంది.
12:05 ఈ ట్యుటొరియల్ ని తెలుగులోకి అనువదించినది కరణం స్రవంతి మరియు నేను ఉదయ లక్ష్మి మీ వద్ద సెలవు తీసుకుంటున్నాను. పాల్గొన్నందుకు ధన్యవాదములు

Contributors and Content Editors

Madhurig, Simhadriudaya