باش اسپلٹ سٹرنگ کی مثالیں۔

Bash Split String Examples



ہمیں پروگرامنگ میں مختلف مقاصد کے لیے سٹرنگ ڈیٹا کو تقسیم کرنے کی ضرورت ہے۔ بہت سی پروگرامنگ زبانوں میں کسی بھی سٹرنگ ڈیٹا کو کئی حصوں میں تقسیم کرنے کے لیے 'سپلٹ' نامی بلٹ ان فنکشن ہوتا ہے۔ لیکن سٹرنگ کو تقسیم کرنے کے لئے بش میں کوئی بلٹ ان فنکشن نہیں ہے۔ عام طور پر ، سنگل یا ایک سے زیادہ ڈیلیمیٹر کسی بھی سٹرنگ ڈیٹا کو تقسیم کرنے کے لیے استعمال ہوتے ہیں۔ آپ بش میں سٹرنگ کو کس طرح تقسیم کرسکتے ہیں اس ٹیوٹوریل میں مختلف مثالوں کا استعمال کرتے ہوئے دکھایا گیا ہے۔








$ IFS متغیر کا استعمال۔

خصوصی شیل متغیر $ IFS ایک سٹرنگ کو الفاظ میں تقسیم کرنے کے لیے بش میں استعمال ہوتا ہے۔ $ IFS متغیر کو انٹرنل فیلڈ سیپریٹر (IFS) کہا جاتا ہے جو کہ سٹرنگ کو تقسیم کرنے کے لیے مخصوص ڈلیمیٹر تفویض کرنے کے لیے استعمال ہوتا ہے۔ لفظ کی حدوں کی شناخت $ IFS کے ذریعے کی گئی ہے۔ وائٹ اسپیس اس متغیر کے لیے ڈیفالٹ ڈلیمیٹر ویلیو ہے۔ کوئی دوسری قدر جیسے ' t' ، ' n' ، '-' وغیرہ کو حد بندی کے طور پر استعمال کیا جا سکتا ہے۔ $ IFS متغیر میں قیمت تفویض کرنے کے بعد ، سٹرنگ ویلیو کو دو آپشنز کے ذریعے پڑھا جا سکتا ہے۔ یہ '-r' اور '-a' ہیں۔ آپشن ، '-r' استعمال کیا جاتا ہے بیک سلیش () کو ایک کردار کے طور پر فرار کے کردار کے طور پر اور '-a' آپشن استعمال کیا جاتا ہے اسپلٹ ٹیڈ الفاظ کو ایک سرنی متغیر میں محفوظ کرنے کے لیے۔ بش میں $ IFS متغیر استعمال کیے بغیر سٹرنگ کو تقسیم کیا جاسکتا ہے۔ سٹرنگ ڈیٹا کو تقسیم کرنے کے مختلف طریقے ($ IFS کے ساتھ یا $ IFS کے بغیر) مندرجہ ذیل مثالوں میں دکھائے گئے ہیں۔



مثال 1: اسپرٹ سٹرنگ کی بنیاد پر۔

سٹرنگ ویلیو کو سفید جگہ سے بطور ڈیفالٹ تقسیم کیا جاتا ہے۔ 'split1.sh' نامی فائل بنائیں اور درج ذیل کوڈ کو شامل کریں۔ یہاں ، $ text متغیر کو سٹرنگ ویلیو تفویض کرنے کے لیے استعمال کیا جاتا ہے۔ شیل متغیر ، $ IFS اس کردار کو تفویض کرنے کے لیے استعمال کیا جاتا ہے جو سٹرنگ ڈیٹا کو تقسیم کرنے کے لیے استعمال کیا جائے گا۔ اس اسکرپٹ میں جگہ کو بطور جداکار استعمال کیا گیا ہے۔ '-a' آپشن ریڈنگ کمانڈ کے ساتھ استعمال ہوتا ہے تاکہ اسپلٹ ٹیڈ ڈیٹا کو $ strarr نامی ایک سرنی متغیر میں محفوظ کیا جا سکے۔ 'for' لوپ سرنی کے ہر عنصر ، $ strarr کو پڑھنے کے لیے استعمال ہوتا ہے۔



split1.sh





#!/bin/bash

#سٹرنگ ویلیو کی وضاحت کریں۔
متن='LinuxHint میں خوش آمدید'

# جگہ کو ڈیلیمیٹر کے طور پر سیٹ کریں۔
آئی ایف ایس=''

#اسپیس ڈلیمیٹر کی بنیاد پر تقسیم شدہ الفاظ کو ایک صف میں پڑھیں۔
پڑھیں -کوسٹرار<<< '$ متن'

#کل الفاظ شمار کریں۔
باہر پھینک دیا 'وہاں ہے$ {#strarr [*]}متن میں الفاظ۔ '

# لوپ کا استعمال کرکے صف کی ہر قدر پرنٹ کریں۔
کے لیےگھنٹےمیں '$ {strarr [@]}'؛
کیا
پرنٹ ایف '$ گھنٹےn'
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔



$لشکرsplit1.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

مثال 2: ایک خاص کردار پر مبنی سٹرنگ تقسیم کریں۔

کوئی خاص کردار سٹرنگ ویلیو کو تقسیم کرنے کے لیے جداکار کے طور پر استعمال کیا جا سکتا ہے۔ نام کی فائل بنائیں۔ split2.sh اور درج ذیل کوڈ شامل کریں۔ یہاں ، کتاب کا نام ، مصنف کا نام اور قیمت کی قیمت کوما (،) کو ان پٹ سٹرنگ کے طور پر شامل کرکے لیا جاتا ہے۔ اگلا ، سٹرنگ ویلیو اسپلٹ ٹیڈ ہے اور شیل متغیر ، $ IFS کی قدر کی بنیاد پر ایک صف میں محفوظ ہے۔ صف عناصر کی ہر قدر انڈیکس ویلیو کے ذریعہ پرنٹ کی جاتی ہے۔

split2.sh

#!/bin/bash

#سٹرنگ ویلیو پڑھیں۔
باہر پھینک دیا کوما کو الگ کرکے کتاب کا نام ، مصنف کا نام اور قیمت درج کریں۔ '
پڑھیںمتن

# کوما کو ڈیلیمیٹر کے طور پر سیٹ کریں۔
آئی ایف ایس='،'

#کوما ڈیلیمیٹر کی بنیاد پر تقسیم شدہ الفاظ کو ایک صف میں پڑھیں۔
پڑھیں -کوسٹرار<<< '$ متن'

#تقسیم شدہ الفاظ پرنٹ کریں۔
باہر پھینک دیا کتاب کا نام:$ {strarr [0]}'
باہر پھینک دیا مصنف کا نام:$ {strarr [1]}'
باہر پھینک دیا قیمت:$ {strarr [2]}'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsplit2.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

مثال 3: $ IFS متغیر کے بغیر تار کو تقسیم کریں۔

یہ مثال ظاہر کرتی ہے کہ بش میں $ IFS استعمال کیے بغیر سٹرنگ ویلیو کو کیسے تقسیم کیا جاسکتا ہے۔ 'نامی فائل بنائیں split3.sh ' اور درج ذیل کوڈ شامل کریں۔ اسکرپٹ کے مطابق ، بڑی آنت کے ساتھ ایک ٹیکسٹ ویلیو۔ (:) تقسیم کے لیے ان پٹ کے طور پر لینا ہوگا۔ یہاں ، -d آپشن کے ساتھ 'ریڈرری' کمانڈ سٹرنگ ڈیٹا کو تقسیم کرنے کے لیے استعمال ہوتی ہے۔ '-d' آپشن کو $ IFS جیسے کمانڈ میں جداکار کردار کی وضاحت کے لیے استعمال کیا جاتا ہے۔ اگلا ، 'for' لوپ سرنی عناصر کو پرنٹ کرنے کے لیے استعمال ہوتا ہے۔

split3.sh

#!/bin/bash

#مرکزی تار پڑھیں۔
باہر پھینک دیا 'تقسیم کرنے کے لیے کالون (:) کے ساتھ سٹرنگ درج کریں'
پڑھیںمرکزی

#ڈیلیمیٹر پر مبنی تار کو تقسیم کریں ، ':'
ریڈری-ڈی:-ٹیسٹرار<<< '$ mainstr'
پرنٹ ایف 'n'

# لوپ کا استعمال کرکے صف کی ہر قدر پرنٹ کریں۔
کے لیے (( n=؛ n< $ {#strarr [*]}؛ n ++))
کیا
باہر پھینک دیا '$ {strarr [n]}'
ہو گیا

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsplit3.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

مثال 4: کثیر حرفی ڈیلیمیٹر کے ساتھ سٹرنگ کو تقسیم کریں۔

تمام سابقہ ​​مثالوں میں سٹرنگ ویلیو کو ایک ہی کریکٹر ڈیلیمیٹر نے تقسیم کیا ہے۔ ملٹی کریکٹر ڈیلیمیٹر کا استعمال کرکے آپ اسٹرنگ کو کس طرح تقسیم کرسکتے ہیں اس مثال میں دکھایا گیا ہے۔ نام کی فائل بنائیں۔ اوقات تقسیم 4.sh اور درج ذیل کوڈ شامل کریں۔ یہاں ، $ text متغیر ایک سٹرنگ ڈیٹا کو ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔ $ ڈلیمیٹر متغیر ایک کثیر حرفی ڈیٹا تفویض کرنے کے لیے استعمال ہوتا ہے جو اگلے بیانات میں حد بندی کے طور پر استعمال ہوتا ہے۔ $ myarray متغیر ہر اسپلٹ ٹیڈ ڈیٹا کو ایک صف عنصر کے طور پر محفوظ کرنے کے لیے استعمال کیا جاتا ہے۔ آخر میں ، تمام تقسیم شدہ ڈیٹا کو 'فار' لوپ کا استعمال کرکے پرنٹ کیا جاتا ہے۔

split4.sh

#!/bin/bash

#تقسیم کرنے کے لیے تار کی وضاحت کریں۔
متن='learnHTMLlearnPHPlearnMySQLlearnJavascript'

#کثیر کردار کی حد بندی کی وضاحت کریں۔
حد بندی='سیکھو'
#ڈیلیمیٹر کو مرکزی سٹرنگ سے مربوط کریں۔
تار=$ متن$ حد بندی

#ڈیلیمیٹر پر مبنی متن کو تقسیم کریں۔
میری=()
جبکہ [[ $ سٹرنگ ]]؛کیا
myarray+=( '$ {string ٪٪ '$ delimiter'*}' )
تار=$ {string#*'$ delimiter'}
ہو گیا

#تقسیم کے بعد الفاظ پرنٹ کریں۔
کے لیےقدرمیں $ {myarray [@]}
کیا
باہر پھینک دیا '$ قیمت'
ہو گیا
پرنٹ ایف 'n'

آؤٹ پٹ:

اسکرپٹ چلائیں۔

$لشکرsplit4.sh

اسکرپٹ چلانے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔

نتیجہ:

سٹرنگ ڈیٹا کو مختلف پروگرامنگ مقاصد کے لیے تقسیم کرنے کی ضرورت ہے۔ بش میں سٹرنگ ڈیٹا کو تقسیم کرنے کے مختلف طریقے اس ٹیوٹوریل میں دکھائے گئے ہیں۔ امید ہے کہ مذکورہ بالا مثالوں پر عمل کرنے کے بعد ، قارئین اپنی ضرورت کی بنیاد پر کسی بھی سٹرنگ ڈیٹا کو تقسیم کر سکیں گے۔

مزید معلومات کے لیے دیکھیں۔ ویڈیو !