Bash میں 2D ارے کو پڑھنے کے لیے readarray کمانڈ کا استعمال کیسے کریں۔

Bash My 2d Ar Kw P N K Ly Readarray Kman Ka Ast Mal Kys Kry



باش ایک مقبول شیل اسکرپٹنگ زبان ہے جو لینکس اور یونکس آپریٹنگ سسٹم میں استعمال ہوتی ہے۔ یہ کمانڈز اور فیچرز کا ایک بھرپور سیٹ فراہم کرتا ہے جو دہرائے جانے والے کاموں کو خودکار بنانا آسان بناتا ہے۔ 'ریڈرری' باش میں سب سے زیادہ مددگار کمانڈز میں سے ایک ہے۔ اس کمانڈ کے ساتھ، فائل کی لائنوں کو 2D صف میں پڑھا جا سکتا ہے۔ اس پوسٹ میں، ہم Bash کی 'readarray' کمانڈ کا استعمال کرتے ہوئے فائل سے لائنوں کو 2D ارے میں پڑھنے کا طریقہ دیکھیں گے۔

Bash میں 'readarray' استعمال کرنا

'readarray' کمانڈ فائل یا معیاری ان پٹ سے لائنوں کو پڑھتی ہے اور انہیں ایک صف میں تفویض کرتی ہے۔ 'readarray' استعمال کرنے کا نحو درج ذیل ہے:







ریڈری [ -d شیئر کریں۔ ] [ -n COUNT ] [ - اصل ] [ -s COUNT ] [ -t ] صف


'readarray' کمانڈ کے لیے دستیاب اختیارات یہ ہیں:



'-d SHARE': لائنوں کو صف کے عناصر میں تقسیم کرتے وقت استعمال کرنے کے لیے ڈیلیمیٹر سیٹ کرتا ہے اور بطور ڈیفالٹ، ڈیلیمیٹر ایک نئی لائن کریکٹر ہے۔



'-n COUNT': صف میں پڑھنے کے لیے لائنوں کی زیادہ سے زیادہ تعداد کی وضاحت کرتا ہے۔





'-O ORIGIN' : صف کا ابتدائی اشاریہ سیٹ کرتا ہے۔

'-s COUNT': صف میں پڑھنے سے پہلے چھوڑنے کے لیے لائنوں کی تعداد بتاتا ہے۔



'-t': صف میں پڑھی جانے والی ہر لائن سے پچھلی نئی لائن کریکٹر کو ہٹاتا ہے۔

یہاں ایک فائل سے 2D صف میں لائنوں کو پڑھنے کے لئے 'readarray' استعمال کرنے کی ایک مثال ہے اور اس کے لئے میں نے ایک testfile.txt جس کے مندرجات ہیں:

1 2 3
4 5 6
7 8 9


تو یہاں مکمل bash اسکرپٹ ہے جو 'readarray' کمانڈ کے استعمال کو ظاہر کرتا ہے:

#!/bin/bash
# فائل سے صف میں لائنیں پڑھیں
ریڈری -t لائنیں < testfile.txt
# 3 قطاروں اور 3 کالموں کے ساتھ 2D صف کا اعلان کریں۔
اعلان -اے صف
# لائنوں پر اعادہ کریں اور ہر لائن کو عناصر میں تقسیم کریں۔
کے لیے میں میں ' ${!لائنز[@]} ' ; کیا
آئی ایف ایس = '' پڑھیں -r -a عناصر <<< ' ${لائنز[i]} '
کے لیے جے میں ' ${!عناصر[@]} ' ; کیا
اگر [ [ -n ' ${عناصر[j]} ' ] ] ; پھر
صف [ $i ، $j ] = ${عناصر[j]}
ہونا
ہو گیا
ہو گیا
# صف کو پرنٹ کریں۔
کے لیے ( ( میں = 0 ؛میں < 3 ;i++ ) ) ; کیا
کے لیے ( ( جے = 0 ;j < 3 ;j++ ) ) ; کیا
بازگشت -n ' ${ array[$i,$j]} '
ہو گیا
بازگشت
ہو گیا


یہاں پہلے میں نے ایک 2D ارے کا اعلان کیا ہے جسے 'array' کہا جاتا ہے اور پھر 'لائنز' اری میں 'testfile.txt' نامی فائل سے لائنوں کو پڑھنے کے لیے 'readarray' کمانڈ استعمال کیا ہے۔ اگلا، کوڈ 'لائنز' سرنی پر اعادہ کرتا ہے اور 'IFS' اور 'پڑھیں' کمانڈز کا استعمال کرتے ہوئے ہر لائن کو عناصر میں تقسیم کرتا ہے۔

اس کے بعد، یہ عناصر کو 2D ارے 'ارے' میں اسٹور کرتا ہے اور پھر ہر لائن کو عناصر میں تقسیم کرنے کے لیے ریڈ کمانڈ کا استعمال کرتا ہے۔ اب ہر عنصر کو 'array' array میں متعلقہ عنصر کو تفویض کیا جاتا ہے اور آخر میں، nested for loops کا استعمال کرتے ہوئے 'array' array کے مواد پرنٹ کیے جاتے ہیں۔

نتیجہ

'readarray' کمانڈ باش اسکرپٹس میں ڈیٹا کی بڑی مقدار میں ہیرا پھیری کرنا آسان بناتی ہے۔ اس مضمون میں فراہم کردہ مثالوں پر عمل کرتے ہوئے، آپ فائلوں سے لائنوں کو پڑھنے اور انہیں 2D صفوں میں پروسیس کرنے کے لیے اپنے Bash اسکرپٹس میں 'readarray' کا استعمال شروع کر سکتے ہیں۔