`Awk` ఆదేశాన్ని ఉపయోగించి నిలువు వరుసల శ్రేణిని ఎలా ముద్రించాలి

How Print Range Columns Using Awk Command



లైనక్స్‌లో పట్టిక డేటా నుండి నిలువు వరుసల శ్రేణిని ముద్రించడానికి ఉపయోగించే అనేక ఆదేశాలలో `awk` ఆదేశం ఒకటి. `Awk` స్క్రిప్ట్ ఫైల్‌ను అమలు చేయడం ద్వారా టెర్మినల్ నుండి నేరుగా` awk` ఆదేశాన్ని ఉపయోగించవచ్చు. ఈ ట్యుటోరియల్‌లో, పట్టిక డేటా నుండి నిలువు వరుసల శ్రేణిని ఎలా ముద్రించాలో మేము మీకు చూపుతాము.

ఉదాహరణ 1: కమాండ్ అవుట్‌పుట్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి

కింది ఆదేశం కమాండ్ అవుట్‌పుట్ నుండి రెండవ, మూడవ మరియు నాల్గవ నిలువు వరుసలను ముద్రించును, 'Ls -l '. ఇక్కడ, కాలమ్ సంఖ్యలు స్పష్టంగా పేర్కొనబడ్డాయి, అయితే అదే శ్రేణి నిలువు వరుసలను ముద్రించడానికి మరింత సమర్థవంతమైన ఆదేశం తదుపరి ఉదాహరణలో చూపబడింది.







$ls -ది | అవాక్ '{$ 2, $ 3, $ 4} ముద్రించండి'

కింది ఆదేశం పై ఆదేశం ద్వారా ఉత్పత్తి అవుతుంది.





ఉదాహరణ 2: a ను ఉపయోగించి ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి కోసం లూప్

ఈ ఉదాహరణ మరియు ఈ ట్యుటోరియల్‌లోని ఇతర ఉదాహరణలను అనుసరించడానికి, పేరు గల టెక్స్ట్ ఫైల్‌ని సృష్టించండి మార్కులు. టెక్స్ట్ కింది కంటెంట్‌తో :





ID CSE203 CSE102 CSE202
1109 78 87 79
1167 67 81 70
1190 56 61 69
1156 89 55 78
199 54 66 58

కింది `awk` ఆదేశం మార్కుల మొదటి మూడు నిలువు వరుసలను ప్రింట్ చేస్తుంది. Txt. ది కోసం కాలమ్ విలువలను ముద్రించడానికి లూప్ ఉపయోగించబడుతుంది మరియు లూప్ మూడు దశలను కలిగి ఉంటుంది. ది NF వేరియబుల్ ఫైల్ యొక్క మొత్తం ఫీల్డ్‌లు లేదా నిలువు వరుసలను సూచిస్తుంది.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ 'కోసం (i = 1; i<=NF-1;i++) printf $i' '; print ''}'మార్కులు. టెక్స్ట్

కింది అవుట్‌పుట్ ఆదేశాన్ని అమలు చేయడం ద్వారా ఉత్పత్తి చేయబడుతుంది. అవుట్‌పుట్ విద్యార్థిని చూపుతుంది ID లు మరియు మార్కులు CSE203 మరియు CSE102 .



ఉదాహరణ 3: ప్రారంభ మరియు ముగింపు వేరియబుల్స్ నిర్వచించడం ద్వారా నిలువు వరుసల శ్రేణిని ముద్రించండి

కింది `awk` కమాండ్ ప్రారంభించడం ద్వారా కమాండ్ అవుట్‌పుట్ 'ls -l' నుండి మొదటి మూడు నిలువు వరుసలను ముద్రించగలదు. ప్రారంభిస్తోంది మరియు ముగింపు వేరియబుల్స్. ఇక్కడ, విలువ ప్రారంభిస్తోంది వేరియబుల్ 1, మరియు విలువ ముగింపు వేరియబుల్ 3. ఈ వేరియబుల్స్ కాలమ్ విలువలను ముద్రించడానికి ఒక లూప్‌లో మళ్లీ మళ్లీ చేయబడతాయి.

$ls -ది | అవాక్ 'ప్రారంభించు {మొదటి = 1; చివరి = 3}
{కోసం (i = మొదటి; i

ఆదేశాన్ని అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. అవుట్పుట్ అవుట్పుట్ యొక్క మొదటి మూడు కాలమ్ విలువలను చూపుతుంది, 'ls -l'.

ఉదాహరణ 4: ఫార్మాటింగ్‌తో ఒక ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి

కింది `awk` కమాండ్ మొదటి మూడు నిలువు వరుసలను ప్రింట్ చేస్తుంది మార్కులు. టెక్స్ట్ ఉపయోగించి printf మరియు అవుట్‌పుట్ ఫీల్డ్ సెపరేటర్ ( OFS ). ఇక్కడ, for loop మూడు దశలను కలిగి ఉంటుంది మరియు ఫైల్ నుండి వరుసగా మూడు నిలువు వరుసలు ముద్రించబడతాయి. OFS నిలువు వరుసల మధ్య ఖాళీని జోడించడానికి ఇక్కడ ఉపయోగించబడుతుంది. లూప్ (i) యొక్క కౌంటర్ విలువ సమానంగా ఉన్నప్పుడు ముగింపు వేరియబుల్, అప్పుడు కొత్త లైన్ ( n) రూపొందించబడింది.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ -v ప్రారంభం=1 -v ముగింపు=3 'కోసం (i = ప్రారంభం; i<=end;i++) printf('%s%s',
$ i, (i == ముగింపు)? ' n': OFS)} '
మార్కులు. టెక్స్ట్

పై ఆదేశాలను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ రూపొందించబడుతుంది.

ఉదాహరణ 5: షరతులతో కూడిన స్టేట్‌మెంట్‌ని ఉపయోగించి ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి

కింది `awk` ఆదేశం ఫైల్ కోసం మొదటి మరియు చివరి నిలువు వరుసలను a for loop మరియు if if స్టేట్‌మెంట్ ఉపయోగించి ప్రింట్ చేస్తుంది. ఇక్కడ, for loop నాలుగు దశలను కలిగి ఉంటుంది. ది ప్రారంభిస్తోంది మరియు ముగింపు if షరతు ఉపయోగించి ఫైల్ నుండి రెండవ మరియు మూడవ నిలువు వరుసలను వదిలివేయడానికి స్క్రిప్ట్‌లో వేరియబుల్స్ ఉపయోగించబడతాయి. నిలువు వరుసల మధ్య ఖాళీని జోడించడానికి OFS వేరియబుల్ ఉపయోగించబడుతుంది మరియు చివరి కాలమ్‌ను ముద్రించిన తర్వాత ORS వేరియబుల్ కొత్త లైన్ ( n) జోడించడానికి ఉపయోగించబడుతుంది.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ -v ప్రారంభం=2 -v ముగింపు=3 'కోసం (i = 1; i<=NF;i++)
ఒకవేళ (i> = ప్రారంభం && i<=end) continue;
వేరే printf ('%s%s', $ i, (i! = NF)? OFS: ORS)} '
మార్కులు. టెక్స్ట్

పై ఆదేశాలను అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది. మార్కులు. Txt యొక్క మొదటి మరియు చివరి నిలువు వరుసలను అవుట్‌పుట్ చూపుతుంది.

ఉదాహరణ 6: NF వేరియబుల్ ఉపయోగించి ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి

కింది `awk` ఆదేశం NF వేరియబుల్ ఉపయోగించి ఫైల్ నుండి మొదటి మరియు చివరి నిలువు వరుసలను ముద్రించును. కాలమ్ విలువలను ముద్రించడానికి లూప్‌లు లేదా షరతులతో కూడిన స్టేట్‌మెంట్‌లు ఉపయోగించబడవు. NF ఫీల్డ్‌ల సంఖ్యను సూచిస్తుంది. మార్క్స్.టెక్స్ట్‌లో నాలుగు నిలువు వరుసలు ఉన్నాయి. $ (NF-3) మొదటి నిలువు వరుసను నిర్వచిస్తుంది మరియు $ NF చివరి నిలువు వరుసను సూచిస్తుంది.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ '{ప్రింట్ $ (NF-3)' '$ NF}'మార్కులు. టెక్స్ట్

పై ఆదేశాలను అమలు చేయడం ద్వారా కింది అవుట్‌పుట్ ఉత్పత్తి అవుతుంది. మార్కులు. Txt యొక్క మొదటి మరియు చివరి నిలువు వరుసలను అవుట్‌పుట్ చూపుతుంది.

ఉదాహరణ 7: సబ్‌స్ట్రర్ () మరియు ఇండెక్స్ () ఉపయోగించి ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించండి

మొదటి ఆర్గ్యుమెంట్ విలువలో రెండవ ఆర్గ్యుమెంట్ విలువ ఉంటే ఇండెక్స్ () ఫంక్షన్ ఒక స్థానాన్ని అందిస్తుంది. సబ్‌స్ట్రర్ () ఫంక్షన్ మూడు ఆర్గ్యుమెంట్‌లను తీసుకోవచ్చు. మొదటి వాదన స్ట్రింగ్ విలువ, రెండవ వాదన ప్రారంభ స్థానం మరియు మూడవ వాదన పొడవు. సబ్‌స్ట్రార్ () యొక్క మూడవ వాదన కింది ఆదేశంలో విస్మరించబడింది. `Awk` ఆదేశంలో కాలమ్ $ 1 నుండి మొదలవుతుంది కాబట్టి, ఇండెక్స్ () ఫంక్షన్ $ 3 ని తిరిగి ఇస్తుంది మరియు కమాండ్ $ 3 నుండి $ 4 వరకు ముద్రించబడుతుంది.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ '{ప్రింట్ సబ్‌స్ట్రర్ ($ 0, ఇండెక్స్ ($ 0, $ 3))}'మార్కులు. టెక్స్ట్

పై ఆదేశాలను అమలు చేయడం ద్వారా కింది అవుట్‌పుట్ ఉత్పత్తి అవుతుంది.

ఉదాహరణ 8: printf ఉపయోగించి ఒక ఫైల్ నుండి వరుస కాలమ్‌ల శ్రేణిని ముద్రించండి

కింది `awk` ఆదేశం 10 అక్షరాలకు తగినంత స్థలాన్ని సెట్ చేయడం ద్వారా మార్కుల మొదటి, రెండవ మరియు మూడవ నిలువు వరుసలను ప్రింట్ చేస్తుంది. టెక్స్ట్.

$పిల్లిమార్కులు. టెక్స్ట్
$అవాక్ '// {printf' %10s %10s %10s n ', $ 1, $ 3, $ 2}'మార్కులు. టెక్స్ట్

పై ఆదేశాలను అమలు చేయడం ద్వారా కింది అవుట్‌పుట్ ఉత్పత్తి అవుతుంది.

ముగింపు

కమాండ్ అవుట్‌పుట్ లేదా ఫైల్ నుండి నిలువు వరుసల శ్రేణిని ముద్రించడానికి అనేక మార్గాలు ఉన్నాయి. ఈ ట్యుటోరియల్ పట్టిక డేటా నుండి కంటెంట్‌ను ప్రింట్ చేయడానికి లైనక్స్ వినియోగదారులకు `awk` కమాండ్ ఎలా సహాయపడుతుందో చూపుతుంది.