బాష్ అనేది Linux మరియు Unix ఆపరేటింగ్ సిస్టమ్లలో ఉపయోగించే ఒక ప్రసిద్ధ షెల్ స్క్రిప్టింగ్ భాష. ఇది రిపీట్ టాస్క్లను ఆటోమేట్ చేయడాన్ని సులభతరం చేసే రిచ్ కమాండ్లు మరియు ఫీచర్లను అందిస్తుంది. బాష్లోని అత్యంత సహాయకరమైన ఆదేశాలలో 'రీడర్రే' ఒకటి. ఈ ఆదేశంతో, ఫైల్ నుండి పంక్తులు 2D శ్రేణిలోకి చదవబడతాయి. ఈ పోస్ట్లో, Bash యొక్క “readarray” ఆదేశాన్ని ఉపయోగించి ఫైల్ నుండి లైన్లను 2D శ్రేణిలోకి ఎలా చదవాలో మేము పరిశీలిస్తాము.
బాష్లో 'రీడర్రే'ని ఉపయోగించడం
'readarray' కమాండ్ ఫైల్ లేదా స్టాండర్డ్ ఇన్పుట్ నుండి లైన్లను రీడ్ చేస్తుంది మరియు వాటిని శ్రేణికి కేటాయిస్తుంది. 'readarray'ని ఉపయోగించడం కోసం వాక్యనిర్మాణం క్రింది విధంగా ఉంది:
చదవండి [ -డి షేర్ చేయండి ] [ -n COUNT ] [ - మూలం ] [ -లు COUNT ] [ -టి ] అమరిక
'readarray' కమాండ్ కోసం అందుబాటులో ఉన్న ఎంపికలు:
'-d షేర్': పంక్తులను శ్రేణి మూలకాలుగా విభజించేటప్పుడు ఉపయోగించడానికి డీలిమిటర్ని సెట్ చేస్తుంది మరియు డిఫాల్ట్గా, డీలిమిటర్ కొత్త లైన్ అక్షరం.
‘-n COUNT’: శ్రేణిలో చదవడానికి గరిష్ట సంఖ్యలో లైన్లను పేర్కొంటుంది.
'-ఓ మూలం' : శ్రేణి యొక్క ప్రారంభ సూచికను సెట్ చేస్తుంది.
‘-s COUNT’: శ్రేణిలో చదవడానికి ముందు దాటవేయవలసిన పంక్తుల సంఖ్యను పేర్కొంటుంది.
'-t': శ్రేణిలో చదివిన ప్రతి పంక్తి నుండి వెనుకబడిన కొత్త లైన్ అక్షరాన్ని తొలగిస్తుంది.
ఫైల్ నుండి పంక్తులను 2D శ్రేణిలోకి చదవడానికి 'readarray'ని ఉపయోగించే ఉదాహరణ ఇక్కడ ఉంది మరియు దాని కోసం నేను సృష్టించాను testfile.txt దీని కంటెంట్లు:
1 2 34 5 6
7 8 9
కాబట్టి 'readarray' కమాండ్ వినియోగాన్ని ప్రదర్శించే పూర్తి బాష్ స్క్రిప్ట్ ఇక్కడ ఉంది:
# ఫైల్ నుండి పంక్తులను శ్రేణిలోకి చదవండి
చదవండి -టి పంక్తులు < testfile.txt
# 3 అడ్డు వరుసలు మరియు 3 నిలువు వరుసలతో 2D శ్రేణిని ప్రకటించండి
ప్రకటించండి -ఎ అమరిక
# పంక్తులపై మళ్ళించండి మరియు ప్రతి పంక్తిని మూలకాలుగా విభజించండి
కోసం i లో ' ${!లైన్లు[@]} ' ; చేయండి
IFS = '' చదవండి -ఆర్ -ఎ అంశాలు <<< ' ${లైన్లు[i]} '
కోసం జె లో ' ${!మూలకాలు[@]} ' ; చేయండి
ఉంటే [ [ -ఎన్ ' ${మూలకాలు[j]} ' ] ] ; అప్పుడు
అమరిక [ $i , $j ] = ${మూలకాలు[j]}
ఉంటుంది
పూర్తి
పూర్తి
# శ్రేణిని ముద్రించండి
కోసం ( ( i = 0 ;i < 3 ;i++ ) ) ; చేయండి
కోసం ( ( జె = 0 ;జె < 3 ;j++ ) ) ; చేయండి
ప్రతిధ్వని -ఎన్ ' ${శ్రేణి[$i,$j]} '
పూర్తి
ప్రతిధ్వని
పూర్తి
ఇక్కడ మొదట నేను 'array' అని పిలువబడే 2D శ్రేణిని ప్రకటించాను మరియు 'testfile.txt' అనే ఫైల్ నుండి 'లైన్స్' శ్రేణిలోకి పంక్తులను చదవడానికి 'readarray' ఆదేశాన్ని ఉపయోగించాను. తరువాత, కోడ్ 'లైన్స్' శ్రేణిపై పునరావృతమవుతుంది మరియు 'IFS' మరియు 'రీడ్' ఆదేశాలను ఉపయోగించి ప్రతి పంక్తిని మూలకాలుగా విభజించండి.
ఆ తర్వాత, ఇది 2D శ్రేణి 'శ్రేణి'లో మూలకాలను నిల్వ చేస్తుంది మరియు ప్రతి పంక్తిని మూలకాలుగా విభజించడానికి రీడ్ కమాండ్ను ఉపయోగిస్తుంది. ఇప్పుడు ప్రతి మూలకం 'శ్రేణి' శ్రేణిలోని సంబంధిత మూలకానికి కేటాయించబడుతుంది మరియు చివరగా, లూప్ల కోసం సమూహాన్ని ఉపయోగించి 'శ్రేణి' శ్రేణి యొక్క కంటెంట్లు ముద్రించబడతాయి.
ముగింపు
'readarray' కమాండ్ బాష్ స్క్రిప్ట్లలో పెద్ద మొత్తంలో డేటాను మార్చడాన్ని సులభతరం చేస్తుంది. ఈ కథనంలో అందించిన ఉదాహరణలను అనుసరించడం ద్వారా, మీరు ఫైల్ల నుండి లైన్లను చదవడానికి మరియు వాటిని 2D శ్రేణుల్లోకి ప్రాసెస్ చేయడానికి మీ స్వంత బాష్ స్క్రిప్ట్లలో 'readarray'ని ఉపయోగించడం ప్రారంభించవచ్చు.