பாஷ் பிளவு சரம் உதாரணங்கள்

Bash Split String Examples



நிரலாக்கத்தில் பல்வேறு நோக்கங்களுக்காக சரம் தரவை நாம் பிரிக்க வேண்டும். எந்தவொரு நிரல் தரவையும் பல பகுதிகளாகப் பிரிக்க பல நிரலாக்க மொழிகள் 'பிளவு' என்ற பெயரில் உள்ளமைக்கப்பட்ட செயல்பாட்டைக் கொண்டுள்ளன. ஆனால் சரத்தை பிரிப்பதற்கு பாஷில் உள்ளமைக்கப்பட்ட செயல்பாடு இல்லை. பொதுவாக, ஒற்றை அல்லது பல டிலிமிட்டர்கள் எந்த சரம் தரவையும் பிரிக்கப் பயன்படும். பாஷில் சரத்தை எப்படிப் பிரிக்கலாம் என்பது பல்வேறு எடுத்துக்காட்டுகளைப் பயன்படுத்தி இந்த டுடோரியலில் காட்டப்பட்டுள்ளது.








$ IFS மாறியைப் பயன்படுத்துதல்

சிறப்பு ஷெல் மாறி $ IFS ஒரு சரத்தை வார்த்தைகளாகப் பிரிக்க பாஷில் பயன்படுத்தப்படுகிறது. $ IFS மாறி, இன்டர்னல் ஃபீல்ட் செப்பரேட்டர் (IFS) என்று அழைக்கப்படுகிறது, இது சரத்தை பிரிப்பதற்கு குறிப்பிட்ட டிலிமிட்டரை ஒதுக்க பயன்படுகிறது. வார்த்தையின் எல்லைகள் $ IFS மூலம் பாஷில் அடையாளம் காணப்படுகின்றன. இந்த மாறிக்கான இயல்புநிலை வரையறை மதிப்பு வெள்ளை இடம். ' T', ' n', '-' போன்ற வேறு எந்த மதிப்பும் எல்லை நிர்ணயமாகப் பயன்படுத்தப்படலாம். மதிப்பை $ IFS மாறிக்கு ஒதுக்கிய பிறகு, சரம் மதிப்பை இரண்டு விருப்பங்களால் படிக்க முடியும். இவை ‘-r’ மற்றும் ‘-a’. '-R' என்ற விருப்பம், பேக்ஸ்லாஷ் () ஐ எஸ்கேப் கேரக்டரை விட ஒரு கேரக்டராகப் படிக்கவும், '-a' ஆப்ஷன் ஸ்ப்ளிட்-டெட் வார்த்தைகளை அர்ரே வேரியபில் சேமிக்கவும் பயன்படுகிறது. பாஷில் $ IFS மாறியைப் பயன்படுத்தாமல் சரத்தை பிரிக்கலாம். சரம் தரவைப் பிரிப்பதற்கான பல்வேறு வழிகள் ($ IFS உடன் அல்லது $ IFS இல்லாமல்) பின்வரும் எடுத்துக்காட்டுகளில் காட்டப்பட்டுள்ளன.



எடுத்துக்காட்டு -1: அடிப்படையில் சரம் பிளவு

சரம் மதிப்பு முன்னிருப்பாக வெள்ளை இடத்தால் பிரிக்கப்படுகிறது. 'Split1.sh' என்ற கோப்பை உருவாக்கி, பின்வரும் குறியீட்டைச் சேர்க்கவும். இங்கே, $ text variable ஒரு string value ஐ ஒதுக்க பயன்படுகிறது. ஷெல் வேரியபிள், $ IFS ஆனது ஸ்ட்ரிங் டேட்டாவைப் பிரிப்பதற்குப் பயன்படுத்தப்படும் கேரக்டரை ஒதுக்க பயன்படுகிறது. இந்த ஸ்கிரிப்டில் ஸ்பேஸ் பிரிப்பானாக பயன்படுத்தப்படுகிறது. $-Strarr என்ற பெயரிடப்பட்ட வரிசையாகப் பிளவுபட்ட தரவைச் சேமிக்க ‘-a’ விருப்பம் வாசிப்பு கட்டளையுடன் பயன்படுத்தப்படுகிறது. வரிசையின் ஒவ்வொரு உறுப்புகளையும் படிக்க $ forrr 'for' லூப் பயன்படுத்தப்படுகிறது.



பிளவு 1. எஸ்





#!/பின்/பேஷ்

#சரத்தின் மதிப்பை வரையறுக்கவும்
உரை='லினக்ஸ்ஹிண்டிற்கு வரவேற்கிறோம்'

# இடைவெளியாக இடத்தை அமைக்கவும்
ஐஎஃப்எஸ்=''

#ஸ்பேஸ் டிலிமிட்டரை அடிப்படையாகக் கொண்டு பிரிந்த வார்த்தைகளை ஒரு வரிசையில் படிக்கவும்
படி -செய்யstrarr<<< '$ உரை'

#மொத்த வார்த்தைகளை எண்ணுங்கள்
வெளியே எறிந்தார் 'உள்ளன$ {#strarr [*]}உரையில் உள்ள வார்த்தைகள். '

# வளையத்தைப் பயன்படுத்தி வரிசையின் ஒவ்வொரு மதிப்பையும் அச்சிடவும்
க்கானமணிஇல் '$ {strarr [@]}';
செய்
printf '$ மணி n'
முடிந்தது

வெளியீடு:

ஸ்கிரிப்டை இயக்கவும்.



$பேஷ்பிளவு 1. எஸ்

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்.

எடுத்துக்காட்டு -2: ஒரு குறிப்பிட்ட எழுத்தின் அடிப்படையில் சரம் பிளவு

சரம் மதிப்பைப் பிரிப்பதற்கு எந்த குறிப்பிட்ட எழுத்தையும் பிரிப்பானாகப் பயன்படுத்தலாம். என்ற கோப்பை உருவாக்கவும் பிளவு 2. எஸ் மற்றும் பின்வரும் குறியீட்டைச் சேர்க்கவும். இங்கே, புத்தகத்தின் பெயர், ஆசிரியரின் பெயர் மற்றும் விலை மதிப்பு ஆகியவை உள்ளீடு சரமாக கமாவை (,) சேர்ப்பதன் மூலம் எடுக்கப்படுகின்றன. அடுத்து, ஸ்ட்ரிங் மதிப்பு பிளவுபட்டு, ஷெல் மாறி, $ IFS மதிப்பு அடிப்படையில் ஒரு வரிசையில் சேமிக்கப்படுகிறது. வரிசை உறுப்புகளின் ஒவ்வொரு மதிப்பும் குறியீட்டு மதிப்பால் அச்சிடப்படுகிறது.

பிளவு 2. எஸ்

#!/பின்/பேஷ்

#சரத்தின் மதிப்பைப் படியுங்கள்
வெளியே எறிந்தார் கமாவைப் பிரிப்பதன் மூலம் புத்தகத்தின் பெயர், ஆசிரியரின் பெயர் மற்றும் விலையை உள்ளிடவும். '
படிஉரை

# கமாவை டிலிமிட்டராக அமைக்கவும்
ஐஎஃப்எஸ்=','

#கமா டெலிமிட்டரின் அடிப்படையில் பிரிந்த சொற்களை ஒரு வரிசையில் படிக்கவும்
படி -செய்யstrarr<<< '$ உரை'

#பிரிக்கப்பட்ட சொற்களை அச்சிடுங்கள்
வெளியே எறிந்தார் புத்தகத்தின் பெயர்:$ {strarr [0]}'
வெளியே எறிந்தார் ஆசிரியர் பெயர்:$ {strarr [1]}'
வெளியே எறிந்தார் 'விலை:$ {strarr [2]}'

வெளியீடு:

ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்பிளவு 2. எஸ்

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்.

எடுத்துக்காட்டு -3: $ IFS மாறி இல்லாமல் சரத்தை பிரிக்கவும்

இந்த உதாரணம் $ IFS ஐ பாஷில் பயன்படுத்தாமல் எப்படி சரம் மதிப்பைப் பிரிக்கலாம் என்பதைக் காட்டுகிறது. என்ற பெயரில் ஒரு கோப்பை உருவாக்கவும் பிளவு 3. எஸ் ' மற்றும் பின்வரும் குறியீட்டைச் சேர்க்கவும். ஸ்கிரிப்ட்டின் படி, பெருங்குடலுடன் ஒரு உரை மதிப்பு (:) பிரிப்பதற்கான உள்ளீடாக எடுத்துக்கொள்ள வேண்டும். இங்கே, -d விருப்பத்துடன் ‘ரீடார்ரே’ கட்டளை சரம் தரவைப் பிரிக்கப் பயன்படுகிறது. $-IFS போன்ற கட்டளையில் பிரிப்பான் தன்மையை வரையறுக்க '-d' விருப்பம் பயன்படுத்தப்படுகிறது. அடுத்து, வரிசை கூறுகளை அச்சிட ‘for’ லூப் பயன்படுத்தப்படுகிறது.

பிளவு 3. எஸ்

#!/பின்/பேஷ்

#முக்கிய சரத்தை படிக்கவும்
வெளியே எறிந்தார் 'பெருங்குடலுடன் சரத்தை உள்ளிடவும் (:) பிரிப்பதற்கு'
படிமுக்கிய

#டிலிமிட்டரின் அடிப்படையில் சரத்தை பிரிக்கவும், ':'
வாசிப்பு-டி:-டிstrarr<<< '$ mainstr'
printf ' n'

# வளையத்தைப் பயன்படுத்தி வரிசையின் ஒவ்வொரு மதிப்பையும் அச்சிடவும்
க்கான (( என்=0; என்< $ {#strarr [*]}; n ++))
செய்
வெளியே எறிந்தார் '$ {strarr [n]}'
முடிந்தது

வெளியீடு:

ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்பிளவு 3. எஸ்

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்.

எடுத்துக்காட்டு -4: பல எழுத்துக்கள் கொண்ட டிலிமிட்டருடன் சரத்தை பிரிக்கவும்

முந்தைய அனைத்து எடுத்துக்காட்டுகளிலும் ஒரு ஒற்றை எழுத்து வரம்பால் சரம் மதிப்பு பிரிக்கப்பட்டுள்ளது. மல்டி-கேரக்டர் டிலிமிட்டரைப் பயன்படுத்தி சரத்தை எவ்வாறு பிரிக்கலாம் என்பது இந்த எடுத்துக்காட்டில் காட்டப்பட்டுள்ளது. என்ற கோப்பை உருவாக்கவும் டைம்ஸ் பிளவு 4. எஸ் மற்றும் பின்வரும் குறியீட்டைச் சேர்க்கவும். இங்கே, $ உரை மாறி ஒரு சரம் தரவைச் சேமிக்கப் பயன்படுகிறது. $ decmiter variable ஆனது பல அறிக்கைகள் கொண்ட தரவை ஒதுக்க பயன்படுகிறது. $ myarray variable ஆனது ஒவ்வொரு பிளவுபட்ட தரவையும் ஒரு வரிசை உறுப்பாக சேமிக்க பயன்படுகிறது. இறுதியாக, அனைத்து ஃப்ளிட்-டெட் தரவுகளும் 'ஃபார்' லூப்பைப் பயன்படுத்தி அச்சிடப்படுகின்றன.

பிளவு 4. எஸ்

#!/பின்/பேஷ்

#சரத்தை பிரிப்பதற்கு வரையறுக்கவும்
உரை='கற்றல் HTMLlearnPHPlearnMySQLlearnJavascript'

#பல எழுத்து வரம்பை வரையறுக்கவும்
வரையறுப்பான்='அறிய'
#முக்கிய சரத்துடன் டிலிமிட்டரை இணைக்கவும்
லேசான கயிறு=$ உரை$ வரம்பு

#டிலிமிட்டரின் அடிப்படையில் உரையை பிரிக்கவும்
myarray=()
போது [[ $ சரம் ]];செய்
myarray+=( '$ {string %% '$ வரம்பு'*}' )
லேசான கயிறு=$ {string#*'$ delimiter'}
முடிந்தது

#பிரிந்த பிறகு வார்த்தைகளை அச்சிடுங்கள்
க்கானமதிப்புஇல் $ {myarray [@]}
செய்
வெளியே எறிந்தார் -என் '$ மதிப்பு'
முடிந்தது
printf ' n'

வெளியீடு:

ஸ்கிரிப்டை இயக்கவும்.

$பேஷ்பிளவு 4. எஸ்

ஸ்கிரிப்டை இயக்கிய பின் பின்வரும் வெளியீடு தோன்றும்.

முடிவுரை:

பல்வேறு நிரலாக்க நோக்கங்களுக்காக சரம் தரவு பிரிக்கப்பட வேண்டும். பாஷில் சரம் தரவைப் பிரிப்பதற்கான பல்வேறு வழிகள் இந்த டுடோரியலில் காட்டப்பட்டுள்ளன. மேலே உள்ள எடுத்துக்காட்டுகளைப் பயிற்சி செய்த பிறகு, வாசகர்கள் தங்கள் தேவையின் அடிப்படையில் எந்த சரம் தரவையும் பிரிக்க முடியும் என்று நம்புகிறேன்.

மேலும் தகவலுக்கு பார்க்கவும் காணொளி !