బాష్: లైన్ చదువుతున్నప్పుడు

Bash While Read Line



మీరు బాష్ స్క్రిప్ట్‌లపై పనిచేస్తున్నప్పుడు, కొన్నిసార్లు మీరు ఫైల్ లైన్‌ను లైన్‌గా చదవాల్సి రావచ్చు. ఒక ఉదాహరణతో వివరిద్దాం. మీరు టెక్స్ట్ ఫైల్‌లో కొంత డేటాను కలిగి ఉంటారు, అది స్క్రిప్ట్‌ని ఉపయోగించి అమలు చేయాలి లేదా ప్రాసెస్ చేయాలి. కాబట్టి, టెక్స్ట్ ఫైల్‌ను ప్రాసెస్ చేయడానికి బాష్ స్క్రిప్ట్‌ను అమలు చేయడం చాలా భిన్నంగా ఉంటుంది. ఫైల్ లైన్‌ను లైన్‌గా చదవడానికి మీరు పేర్కొన్న వాక్యనిర్మాణాన్ని అనుసరించాలి. ఈ వ్యాసం బాష్‌లోని టైమ్ లూప్‌ని ఉపయోగించి ఫైల్ నుండి ఒక పంక్తిని చదవడానికి మీకు సహాయం చేస్తుంది.

అయితే చదివే లైన్ యొక్క ప్రాథమిక సింటాక్స్

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







అయితే చదవండి -ఆర్లైన్;
చేయండి
బయటకు విసిరారు '$ లైన్';
పూర్తి <ఇన్పుట్.ఫైల్

పైన పేర్కొన్న వాక్యనిర్మాణంలో ‘-r’ అనే ఐచ్ఛికం చదవడానికి ఆదేశం జారీ చేయబడింది, ఇది బ్యాక్‌స్లాష్‌ను అర్థం చేసుకోకుండా తప్పించుకుంటుంది. 'ఇన్‌పుట్_ఫైల్' ఎంపిక 'రీడ్' ఆదేశాన్ని ఉపయోగించి మీరు యాక్సెస్ చేయదలిచిన మీ ఫైల్ పేరును సూచిస్తుంది.



రీడ్ కమాండ్ శూన్య స్ట్రింగ్‌కు సెట్ చేయబడటానికి ముందు IFS గా సంక్షిప్త అంతర్గత ఫీల్డ్ సెపరేటర్ ఉపయోగించబడుతుంది, ఇది వైట్‌స్పేస్‌ను ట్రిమ్ చేయకుండా ముందుగానే లేదా వెనుకబడి ఉంటుంది.



అయితే IFS=చదవండి -ఆర్లైన్;
చేయండి
బయటకు విసిరారు $ లైన్;
పూర్తి <ఇన్పుట్.ఫైల్

Ctrl + Alt + t సత్వరమార్గాన్ని ఉపయోగించి టెర్మినల్‌ని తెరిచి, ఆపై కింది ఆదేశాలను అమలు చేయండి.





ఉదాహరణ # 1: లైన్ ద్వారా లైన్ రీడింగ్

అన్ని ముఖ్యమైన లైనక్స్ డిస్ట్రిబ్యూషన్‌ల పేర్లతో కూడిన OS.txt అనే ఫైల్ మన వద్ద ఉందని అనుకుందాం. మీరు 'పిల్లి' ఆదేశాన్ని ఉపయోగించకుండా ఫైల్‌ని చదవాలనుకుంటే, ఈ ప్రయోజనం కోసం మీరు నిర్దిష్ట పనిని నిర్వహించడానికి కింది ఆదేశాన్ని అమలు చేయవచ్చు. OS.txt ఫైల్ నుండి ప్రతి పంక్తిని చదివే మరియు మీరు తరువాత ప్రదర్శించగల వేరియబుల్ $ లైన్‌లో ప్రతి దశలో కంటెంట్‌ను నిల్వ చేసే సమయంలో లూప్‌ను మేము ఉపయోగిస్తాము.

OS.txt లో లైనక్స్ పంపిణీ యొక్క క్రింది పేర్లను అతికించండి



CentOS
ఉబుంటు
డెబియన్
LinuxMint $అయితే చదవండిలైన్;
చేయండి
బయటకు విసిరారు $ లైన్;
పూర్తి <OS.txt


పై ఆదేశం నుండి, మీరు టెర్మినల్ విండోలో కింది ప్రతిస్పందనను పొందుతారు:

ఉదాహరణ # 2: బాష్ స్క్రిప్ట్ ఉపయోగించి ఫైల్‌ని చదవడం

బాష్ ఫైల్‌ను సృష్టించి, ఆపై ఫైల్ కంటెంట్‌ను చదవడానికి ఈ ఫైల్‌లో దిగువ పేర్కొన్న కోడ్‌ని జోడించండి. మీరు మునుపటి టెక్స్ట్ ఫైల్‌ను కొత్త వేరియబుల్ $ ఫైల్ పేరులో నిల్వ చేయవచ్చు మరియు వేరియబుల్ $ n ప్రతి లైన్ విలువను ఉంచడానికి ఉపయోగించబడుతుంది. ఇప్పుడు, అయితే లూప్‌ని ఉపయోగించి మేము ఒక నిర్దిష్ట లైన్ నంబర్ ఉన్న ఫైల్ నుండి ప్రతి పంక్తిని చదువుతాము.

#!/బిన్/బాష్
ఫైల్ పేరు='OS.txt'
ఎన్=1
అయితే చదవండిలైన్;
చేయండి
# ప్రతి పంక్తిని చదవడానికి
బయటకు విసిరారు 'OS పంపిణీ లైన్ నం.$ n:$ లైన్'
ఎన్= $((n+1))
పూర్తి < $ ఫైల్ పేరు

OSinfo.sh పేరుతో ఫైల్‌ను సేవ్ చేయండి మరియు పై బాష్ స్క్రిప్ట్‌ను అమలు చేయడానికి టెర్మినల్‌లో కింది ఆదేశాన్ని టైప్ చేయండి.

$బాష్OSinfo.sh

ఇప్పుడు, అసలైన ఫైల్ కంటెంట్‌ను చూడటానికి క్యాట్ కమాండ్‌ని అమలు చేయండి.

$పిల్లిOS.txt

ఫైల్ రీడింగ్ కోసం ప్రత్యామ్నాయ పద్ధతి

కమాండ్ నుండి పాస్ చేసే ఫైల్ పేరును ఉపయోగించడం

బాష్ ఫైల్‌లో, మీరు ఈ క్రింది కోడ్ స్క్రిప్ట్‌ను జోడించాలి. ఈ స్క్రిప్ట్‌లో, మేము ఫైల్ పేరును ఆర్గ్యుమెంట్‌గా తీసుకోవాలి. మొదట, ఆర్గ్యుమెంట్ విలువ $ 1 వేరియబుల్ ద్వారా చదవబడుతుంది, ఇది చదవడానికి ఫైల్ పేరును కలిగి ఉంటుంది. ఇది పేర్కొన్న ప్రదేశంలో ఫైల్ పేరు ఉందో లేదో తనిఖీ చేస్తుంది, అదే సమయంలో లూప్‌ని ఉపయోగించి మునుపటి ఉదాహరణకి సమానమైన ఫైల్ లైన్‌ని చదవండి.

#!/బిన్/బాష్
ఫైల్ పేరు=$ 1
అయితే చదవండిలైన్;చేయండి
# ప్రతి పంక్తిని చదవడం
బయటకు విసిరారు $ లైన్
పూర్తి < $ ఫైల్.పదము

పైన పేర్కొన్న స్క్రిప్ట్‌ను 'Readline.sh' పేరుతో సేవ్ చేయండి మరియు పైన పేర్కొన్న స్క్రిప్ట్‌ను అమలు చేయడానికి టెర్మినల్‌లో కింది ఆదేశాన్ని అమలు చేయండి:

పై అవుట్‌పుట్‌లో, 'OSinfo.txt' ఫైల్ ఆర్గ్యుమెంట్‌గా వెళుతున్నట్లు మీరు గమనిస్తారు మరియు అదనపు ఖాళీలను తీసివేసిన తర్వాత 'OSinfo.txt' లోని కంటెంట్ ప్రదర్శించబడుతుంది. మీరు 'cat OSinfo.txt' ని అమలు చేయడం ద్వారా అసలు ఫైల్ కంటెంట్‌ను ప్రదర్శించవచ్చు.

ముగింపు

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