బాష్ స్ప్లిట్ స్ట్రింగ్ ఉదాహరణలు

Bash Split String Examples



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








$ IFS వేరియబుల్ ఉపయోగించి

ప్రత్యేక షెల్ వేరియబుల్ $ IFS స్ట్రింగ్‌ను పదాలుగా విభజించడానికి బాష్‌లో ఉపయోగించబడుతుంది. $ IFS వేరియబుల్‌ను ఇంటర్నల్ ఫీల్డ్ సెపరేటర్ (IFS) అని పిలుస్తారు, ఇది స్ట్రింగ్‌ను విభజించడానికి నిర్దిష్ట డీలిమిటర్‌ను కేటాయించడానికి ఉపయోగించబడుతుంది. $ IFS ద్వారా పదం సరిహద్దులు బాష్‌లో గుర్తించబడ్డాయి. ఈ వేరియబుల్ కోసం వైట్ స్పేస్ డిఫాల్ట్ డీలిమిటర్ విలువ. ‘ T’, ‘ n’, ‘-‘ మొదలైన ఏదైనా ఇతర విలువను డీలిమిటర్‌గా ఉపయోగించవచ్చు. $ IFS వేరియబుల్‌లో విలువను కేటాయించిన తర్వాత, స్ట్రింగ్ విలువను రెండు ఎంపికల ద్వారా చదవవచ్చు. అవి ‘-r’ మరియు ‘-a’. ఎంపిక, ‘-r’ బ్యాక్ స్లాష్ () ను ఎస్కేప్ క్యారెక్టర్ కాకుండా ఒక క్యారెక్టర్‌గా ఉపయోగించబడుతుంది మరియు స్ప్లిట్-టెడ్ పదాలను అర్రే వేరియబుల్‌గా స్టోర్ చేయడానికి '-a' ఆప్షన్ ఉపయోగించబడుతుంది. బాష్‌లో $ IFS వేరియబుల్ ఉపయోగించకుండా స్ట్రింగ్‌ను స్ప్లిట్-టెడ్ చేయవచ్చు. స్ట్రింగ్ డేటాను విభజించడానికి వివిధ మార్గాలు ($ IFS తో లేదా $ IFS లేకుండా) కింది ఉదాహరణలలో చూపబడ్డాయి.



ఉదాహరణ -1: స్ప్లిట్ స్ట్రింగ్ ఆధారంగా

స్ట్రింగ్ విలువ అప్రమేయంగా వైట్ స్పేస్ ద్వారా విభజించబడింది. 'Split1.sh' అనే ఫైల్‌ను సృష్టించి, కింది కోడ్‌ని జోడించండి. ఇక్కడ, స్ట్రింగ్ విలువను కేటాయించడానికి $ టెక్స్ట్ వేరియబుల్ ఉపయోగించబడుతుంది. షెల్ వేరియబుల్, $ IFS స్ట్రింగ్ డేటాను విభజించడానికి ఉపయోగించే అక్షరాన్ని కేటాయించడానికి ఉపయోగించబడుతుంది. ఈ స్క్రిప్ట్‌లో స్పేస్ సెపరేటర్‌గా ఉపయోగించబడింది. స్ప్లిట్-టెడ్ డేటాను $ strarr అనే అర్రే వేరియబుల్‌లో నిల్వ చేయడానికి రీడింగ్ కమాండ్‌తో ‘-a’ ఆప్షన్ ఉపయోగించబడుతుంది. శ్రేణిలోని ప్రతి మూలకాన్ని చదవడానికి 'for' లూప్ ఉపయోగించబడుతుంది, $ strarr.



స్ప్లిట్ 1. ఎస్





#!/బిన్/బాష్

#స్ట్రింగ్ విలువను నిర్వచించండి
టెక్స్ట్='LinuxHint కి స్వాగతం'

# స్థలాన్ని డీలిమిటర్‌గా సెట్ చేయండి
IFS=''

#స్పేస్ డీలిమిటర్ ఆధారంగా స్ప్లిట్ పదాలను శ్రేణిగా చదవండి
చదవండి -వరకుస్ట్రార్<<< '$ టెక్స్ట్'

#మొత్తం పదాలను లెక్కించండి
బయటకు విసిరారు 'ఉన్నాయి$ {#స్ట్రార్ [*]}వచనంలో పదాలు. '

# లూప్ ఉపయోగించి శ్రేణి యొక్క ప్రతి విలువను ముద్రించండి
కోసంగంటలులో '$ {strarr [@]}';
చేయండి
printf '$ గంటలు n'
పూర్తి

అవుట్‌పుట్:

స్క్రిప్ట్ రన్ చేయండి.



$బాష్స్ప్లిట్ 1. ఎస్

స్క్రిప్ట్ అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ఉదాహరణ -2: ఒక నిర్దిష్ట అక్షరం ఆధారంగా స్ట్రింగ్‌ను విభజించండి

స్ట్రింగ్ విలువను విభజించడానికి ఏదైనా నిర్దిష్ట అక్షరాన్ని సెపరేటర్‌గా ఉపయోగించవచ్చు. అనే ఫైల్‌ను సృష్టించండి స్ప్లిట్ 2. ఎస్ మరియు కింది కోడ్‌ను జోడించండి. ఇక్కడ, పుస్తకం పేరు, రచయిత పేరు మరియు ధర విలువ కామా (,) ని ఇన్‌పుట్ స్ట్రింగ్‌గా జోడించడం ద్వారా తీసుకోబడ్డాయి. తరువాత, స్ట్రింగ్ విలువ స్ప్లిట్-టెడ్ మరియు షెల్ వేరియబుల్, $ IFS విలువ ఆధారంగా శ్రేణిలో నిల్వ చేయబడుతుంది. శ్రేణి మూలకాల యొక్క ప్రతి విలువ సూచిక విలువ ద్వారా ముద్రించబడుతుంది.

స్ప్లిట్ 2. ష

#!/బిన్/బాష్

#స్ట్రింగ్ విలువను చదవండి
బయటకు విసిరారు కామాను వేరు చేయడం ద్వారా పుస్తకం పేరు, రచయిత పేరు మరియు ధరను నమోదు చేయండి. '
చదవండిటెక్స్ట్

# కామాను డీలిమిటర్‌గా సెట్ చేయండి
IFS=','

#కామా డీలిమిటర్ ఆధారంగా స్ప్లిట్ పదాలను శ్రేణిగా చదవండి
చదవండి -వరకుస్ట్రార్<<< '$ టెక్స్ట్'

#విడిపోయిన పదాలను ముద్రించండి
బయటకు విసిరారు పుస్తకం పేరు:$ {strarr [0]}'
బయటకు విసిరారు 'రచయిత పేరు:$ {స్ట్రార్ [1]}'
బయటకు విసిరారు 'ధర:$ {strarr [2]}'

అవుట్‌పుట్:

స్క్రిప్ట్ రన్ చేయండి.

$బాష్స్ప్లిట్ 2. ఎస్

స్క్రిప్ట్ అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ఉదాహరణ -3: $ IFS వేరియబుల్ లేకుండా స్ట్రింగ్‌ను విభజించండి

బాష్‌లో $ IFS ఉపయోగించకుండా స్ట్రింగ్ విలువను ఎలా విభజించవచ్చో ఈ ఉదాహరణ చూపుతుంది. అనే ఫైల్‌ను సృష్టించండి స్ప్లిట్ 3. ఎస్ ' మరియు కింది కోడ్‌ను జోడించండి. స్క్రిప్ట్ ప్రకారం, పెద్దప్రేగుతో టెక్స్ట్ విలువ (:) విభజన కోసం ఇన్‌పుట్‌గా తీసుకోవాలి. ఇక్కడ, స్ట్రింగ్ డేటాను విభజించడానికి -d ఎంపికతో ‘రీడార్రే’ కమాండ్ ఉపయోగించబడుతుంది. $ -FS వంటి ఆదేశంలోని సెపరేటర్ అక్షరాన్ని నిర్వచించడానికి '-d' ఎంపిక ఉపయోగించబడుతుంది. తరువాత, శ్రేణి మూలకాలను ముద్రించడానికి 'ఫర్' లూప్ ఉపయోగించబడుతుంది.

స్ప్లిట్ 3. ఎస్

#!/బిన్/బాష్

#ప్రధాన స్ట్రింగ్ చదవండి
బయటకు విసిరారు 'కోలన్‌తో స్ట్రింగ్‌ని నమోదు చేయండి (:) విడిపోవడానికి' '
చదవండిప్రధాన

#డీలిమిటర్ ఆధారంగా స్ట్రింగ్‌ను విభజించండి, ':'
రీడ్రే-డి:-టిస్ట్రార్<<< '$ mainstr'
printf ' n'

# లూప్ ఉపయోగించి శ్రేణి యొక్క ప్రతి విలువను ముద్రించండి
కోసం (( ఎన్=0; ఎన్< $ {#స్ట్రార్ [*]}; n ++))
చేయండి
బయటకు విసిరారు '$ {strarr [n]}'
పూర్తి

అవుట్‌పుట్:

స్క్రిప్ట్ రన్ చేయండి.

$బాష్స్ప్లిట్ 3. ఎస్

స్క్రిప్ట్ అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ఉదాహరణ -4: స్ట్రింగ్‌ను బహుళ అక్షరాల డీలిమిటర్‌తో విభజించండి

స్ట్రింగ్ విలువ మునుపటి అన్ని ఉదాహరణలలో ఒకే అక్షర డీలిమిటర్ ద్వారా విభజించబడింది. బహుళ అక్షరాల డీలిమిటర్‌ని ఉపయోగించి మీరు స్ట్రింగ్‌ను ఎలా విభజించవచ్చో ఈ ఉదాహరణలో చూపబడింది. అనే ఫైల్‌ను సృష్టించండి టైమ్స్ స్ప్లిట్ 4..ష మరియు కింది కోడ్‌ను జోడించండి. ఇక్కడ, స్ట్రింగ్ డేటాను నిల్వ చేయడానికి $ టెక్స్ట్ వేరియబుల్ ఉపయోగించబడుతుంది. $ డిలిమిటర్ వేరియబుల్ తదుపరి స్టేట్‌మెంట్‌లలో డిలిమిటర్‌గా ఉపయోగించే బహుళ అక్షరాల డేటాను కేటాయించడానికి ఉపయోగించబడుతుంది. $ myarray వేరియబుల్ శ్రేణి మూలకం వలె ప్రతి స్ప్లిట్-టెడ్ డేటాను నిల్వ చేయడానికి ఉపయోగించబడుతుంది. చివరగా, అన్ని స్ప్లిట్-టెడ్ డేటా 'ఫర్' లూప్ ఉపయోగించి ప్రింట్ చేయబడుతుంది.

స్ప్లిట్ 4. ఎస్

#!/బిన్/బాష్

#విభజించడానికి స్ట్రింగ్‌ను నిర్వచించండి
టెక్స్ట్='నేర్చుకోండి HTMLlearnPHPlearnMySQLlearnJavascript'

#బహుళ అక్షరాల డీలిమిటర్‌ను నిర్వచించండి
డీలిమిటర్='నేర్చుకో'
#ప్రధాన స్ట్రింగ్‌తో డీలిమిటర్‌ను కలపండి
స్ట్రింగ్=$ టెక్స్ట్$ డీలిమిటర్

#డీలిమిటర్ ఆధారంగా వచనాన్ని విభజించండి
మైర్రే=()
అయితే [[ $ స్ట్రింగ్ ]];చేయండి
మైర్రే+=( '$ {స్ట్రింగ్ %% '$ డీలిమిటర్'*}' )
స్ట్రింగ్=$ {స్ట్రింగ్#*'$ డీలిమిటర్'}
పూర్తి

#విభజన తర్వాత పదాలను ముద్రించండి
కోసంవిలువలో $ {myarray [@]}
చేయండి
బయటకు విసిరారు -n '$ విలువ'
పూర్తి
printf ' n'

అవుట్‌పుట్:

స్క్రిప్ట్ రన్ చేయండి.

$బాష్స్ప్లిట్ 4. ఎస్

స్క్రిప్ట్ అమలు చేసిన తర్వాత కింది అవుట్‌పుట్ కనిపిస్తుంది.

ముగింపు:

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

మరింత సమాచారం కోసం చూడండి వీడియో !