باش میں ڈلیمیٹر پر سٹرنگ کو تقسیم کرنا

Bash

باش میں سٹرنگ ہیرا پھیری کو توڑنا

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

ہم حل تلاش کریں گے جیسے `tr` کمانڈ استعمال کرنا اور اندرونی فیلڈ سیپریٹر (IFS) کو جوڑنا۔ آخر تک، آپ سٹرنگ اسپلٹنگ کو مؤثر طریقے سے سنبھال سکیں گے اور IFS کو اس کی ڈیفالٹ ویلیو پر دوبارہ ترتیب دے سکیں گے۔ آئیے اس میں غوطہ لگائیں اور آپ کے باش اسکرپٹنگ کے کاموں کو آسان بنائیں!

کمانڈ تفصیل
tr حروف کا ترجمہ یا حذف کرتا ہے۔ سٹرنگ کو تقسیم کرنے کے لیے سیمی کالون کو ایک نئی لائن کریکٹر سے تبدیل کرنے کے لیے یہاں استعمال کیا جاتا ہے۔
IFS انٹرنل فیلڈ سیپریٹر، باش اسکرپٹس میں مخصوص ڈیلیمیٹر کی بنیاد پر تاروں کو تقسیم کرنے کے لیے استعمال کیا جاتا ہے۔
read -r -a ان پٹ کی ایک لائن پڑھتا ہے اور اسے ایک صف میں تقسیم کرتا ہے۔ -r آپشن بیک سلیش کو فرار ہونے والے کرداروں سے تعبیر کرنے سے روکتا ہے۔
echo معیاری آؤٹ پٹ پر متن پرنٹ کرتا ہے۔ اسپلٹ سٹرنگ عناصر کو ظاہر کرنے کے لیے استعمال کیا جاتا ہے۔
split ایک پرل فنکشن جو ایک سٹرنگ کو مخصوص ڈیلیمیٹر کی بنیاد پر سٹرنگ کی فہرست میں تقسیم کرتا ہے۔
foreach ایک پرل لوپ ڈھانچہ جو قدروں کی فہرست پر اعادہ کرتا ہے۔

باش سٹرنگ تقسیم کرنے کی تکنیکوں کو سمجھنا

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

ایک اور طریقہ میں ایڈجسٹ کرنا شامل ہے۔ . عارضی طور پر ترتیب دے کر سیمی کالون میں، ہم سٹرنگ کو ایک صف میں تقسیم کر سکتے ہیں۔ ہم اصل کو محفوظ کرتے ہیں۔ کو OIFS اس میں ترمیم کرنے سے پہلے، یہ یقینی بناتے ہوئے کہ ہم اسے بعد میں بحال کر سکتے ہیں۔ دی کمانڈ ان پٹ سٹرنگ کو ایک صف میں پڑھتی ہے جسے کہتے ہیں۔ ترمیم شدہ کی بنیاد پر اسے تقسیم کرنا . پروسیسنگ کے بعد، اصل IFS بحال کیا جاتا ہے. یہ نقطہ نظر باش میں سٹرنگ اسپلٹنگ کو ہینڈل کرنے کا ایک زیادہ پروگرامی طریقہ فراہم کرتا ہے، جس سے ہمیں مزید ہیرا پھیری کے لیے صفوں کو استعمال کرنے کی اجازت ملتی ہے۔

ڈلیمیٹر پر سٹرنگز کو تقسیم کرنے کے لیے باش کا استعمال

باش اسکرپٹ

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Split string using 'tr' and iterate
mails=$(echo $IN | tr ";" "\n")
for addr in $mails; do
  echo "> [$addr]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

IFS کا استعمال کرتے ہوئے Bash میں سٹرنگ کو تقسیم کرنا

باش اسکرپٹ

#!/usr/bin/env bash
# Input string
IN="bla@some.com;john@home.com"
# Save the original IFS
OIFS=$IFS
# Set IFS to semicolon
IFS=';'
# Split string into an array
read -r -a mails2 <<< "$IN"
# Restore the original IFS
IFS=$OIFS
# Iterate over the array
for x in "${mails2[@]}"; do
  echo "> [$x]"
done

# Output:
# > [bla@some.com]
# > [john@home.com]

سٹرنگ اسپلٹنگ کے لیے ازگر کا استعمال

Python اسکرپٹ

#!/usr/bin/env python3
# Input string
IN = "bla@some.com;john@home.com"
# Split string by semicolon
mails = IN.split(';')
# Iterate and print each element
for addr in mails:
    print(f"> [{addr}]")

# Output:
# > [bla@some.com]
# > [john@home.com]

سٹرنگ کو تقسیم کرنے کے لیے پرل کا استعمال

پرل اسکرپٹ

#!/usr/bin/env perl
use strict;
use warnings;
# Input string
my $IN = "bla@some.com;john@home.com";
# Split string by semicolon
my @mails = split(';', $IN);
# Iterate and print each element
foreach my $addr (@mails) {
    print "> [$addr]\n";
}

# Output:
# > [bla@some.com]
# > [john@home.com]

باش میں اعلی درجے کی سٹرنگ اسپلٹنگ تکنیک

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

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

  1. میں باش میں ڈلیمیٹر پر سٹرنگ کو کیسے تقسیم کروں؟
  2. آپ استعمال کر سکتے ہیں۔ متغیر یا کمانڈ جیسے ، ، اور cut ڈلی میٹر پر تاروں کو تقسیم کرنا۔
  3. کیا ہے باش میں متغیر؟
  4. دی (اندرونی فیلڈ سیپریٹر) ایک خاص متغیر ہے جو ان پٹ ٹیکسٹ کو الفاظ یا ٹوکنز میں تقسیم کرنے کے لیے استعمال ہونے والے کردار (کیریکٹرز) کی وضاحت کرتا ہے۔
  5. میں کس طرح دوبارہ ترتیب دے سکتا ہوں۔ اس کی ڈیفالٹ قدر میں متغیر؟
  6. اصل کو محفوظ کریں۔ اسے تبدیل کرنے سے پہلے قدر کریں، اور پروسیسنگ کے بعد اسے بحال کریں: .
  7. کیا کرتا ہے سٹرنگ سپلٹنگ میں کیا کمانڈ؟
  8. دی کمانڈ حروف کا ترجمہ یا حذف کرتا ہے۔ یہ کسی تار کو تقسیم کرنے کے لیے حد بندیوں کو نئی لائنوں سے بدل سکتا ہے: .
  9. کیا میں Bash کا استعمال کرتے ہوئے کسی تار کو ایک صف میں تقسیم کر سکتا ہوں؟
  10. جی ہاں، تبدیل کر کے متغیر اور استعمال کرتے ہوئے ، آپ سٹرنگ کو ایک صف میں تقسیم کر سکتے ہیں:
  11. کیا ہے کمانڈ کے لیے استعمال کیا؟
  12. پیٹرن اسکیننگ اور پروسیسنگ کے لیے ایک کمانڈ لائن افادیت ہے۔ یہ کسٹم فیلڈ سیپریٹرز کی وضاحت کر کے تاروں کو تقسیم کر سکتا ہے۔
  13. کیسے کرتا ہے کمانڈ کام؟
  14. دی کمانڈ ان پٹ کی ہر لائن سے حصے نکالتی ہے۔ یہ ایک حد بندی کی وضاحت کرکے اور فیلڈز کو منتخب کرکے تاروں کو تقسیم کرسکتا ہے: .
  15. کیوں استعمال کر رہا ہے۔ تار کی تقسیم میں مددگار؟
  16. استعمال کرنا آپ کو مختلف ان پٹ فارمیٹس کے لیے ورسٹائل بناتے ہوئے، تقسیم کرنے والے تاروں کے لیے حسب ضرورت حد بندیوں کی وضاحت کرنے کی اجازت دیتا ہے۔
  17. کیا باش میں ایک سٹرنگ کو متعدد حد بندیوں سے تقسیم کرنا ممکن ہے؟
  18. جی ہاں، آپ کا ایک مجموعہ استعمال کر سکتے ہیں اور متعدد حد بندیوں کو ہینڈل کرنے کے لیے۔
  19. کیا میں استعمال کر سکتا ہوں باش میں سٹرنگ سپلٹنگ کے لیے؟
  20. جبکہ بنیادی طور پر ایک سٹریم ایڈیٹر ہے، اسے دیگر کمانڈز کے ساتھ جوڑا جا سکتا ہے۔ تاروں کو بالواسطہ طور پر تقسیم کرنا۔

باش میں سٹرنگ ہیرا پھیری میں مہارت حاصل کرنا آپ کی اسکرپٹنگ کی کارکردگی کو نمایاں طور پر بہتر بنا سکتا ہے۔ چاہے استعمال کریں۔ سادہ حد بندی کرنے والے یا مزید جدید ٹولز جیسے اور ، یہ تکنیک باش پروگرامنگ کے لیے ضروری ہیں۔ ہمیشہ اصل کو بحال کرنا یاد رکھیں IFS اپنے اسکرپٹ میں غیر متوقع رویے سے بچنے کے لیے۔ ان طریقوں سے، آپ اپنے Bash اسکرپٹس میں سٹرنگ پروسیسنگ کے کاموں کی ایک وسیع رینج کو سنبھال سکتے ہیں۔