باش گلوبنگ ٹیوٹوریل۔

Bash Globbing Tutorial



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

'؟' کسی ایک کردار سے ملنے کے لیے استعمال کیا جاتا ہے۔ آپ استعمال کر سکتے ہیں '؟' متعدد حروف کے مماثل کے لیے متعدد بار۔







مثال 1:



فرض کریں ، آپ ان ٹیکسٹ فائل ناموں کو تلاش کرنا چاہتے ہیں جن کے نام 4 حروف لمبے ہیں اور توسیع ہے۔ .TXT . آپ 'استعمال کرکے گلوبنگ پیٹرن لگاسکتے ہیں۔ ؟ اس کام کو کرنے کے لیے چار بار۔



موجودہ ڈائریکٹری کی تمام فائلوں اور فولڈر کی فہرست تلاش کریں۔





$ایل ایس-

مندرجہ ذیل کمانڈ چلائیں ان فائلوں کو تلاش کریں جن کے نام چار حروف طویل اور نامعلوم ہیں۔

$ ls -l ؟؟؟؟. txt



مثال 2:

فرض کریں ، آپ ان دستاویز فائلوں کو تلاش کرنا چاہتے ہیں جن کے نام 8 حروف لمبے ہیں ، پہلے 4 حروف ہیں۔ f ، o ، o اور t اور توسیع ہے دستاویز . فائلوں کو تلاش کرنے کے لیے گلوبنگ پیٹرن کے ساتھ درج ذیل کمانڈ چلائیں۔

$ایل ایس -پاؤں ؟؟؟؟

مثال 3:

فرض کریں ، آپ جانتے ہیں کہ فائل کا نام ہے۔ 'بہترین' اور توسیع 3 حروف لمبی ہے ، لیکن توسیع نہیں جانتے۔ استعمال کرکے درج ذیل کمانڈ کو چلائیں۔ 'ٹیسٹ' نام کے ساتھ تمام فائلوں کو تلاش کرنے کے لیے جس میں تین حروف طویل ہیں۔

$ایل ایس -بہترین. ؟؟؟

نجمہ - (*)

'*' صفر یا اس سے زیادہ حروف سے ملنے کے لیے استعمال کیا جاتا ہے۔ اگر آپ کے پاس کسی بھی فائل یا معلومات کو تلاش کرنے کے لیے کم معلومات ہیں تو آپ استعمال کر سکتے ہیں۔ '*' گلوبنگ پیٹرن میں

مثال -1:

فرض کریں ، آپ اس کی تمام فائلیں تلاش کرنا چاہتے ہیں۔ 'Pl' توسیع استعمال کرتے ہوئے درج ذیل کمانڈ کو چلائیں۔ '*' اس کام کو کرنے کے لیے.

$ایل ایس - *.pl

مثال 2:

فرض کریں ، آپ صرف فائل نام کا شروعاتی کردار جانتے ہیں جو ہے۔ 'سے' . موجودہ ڈائریکٹری کی تمام فائلوں کو تلاش کرنے کے لیے '*' کا استعمال کرتے ہوئے درج ذیل کمانڈ چلائیں جن کے نام شروع کیے گئے ہیں۔ 'سے' .

$ایل ایس -کو*.*

مثال 3:

آپ فائلوں کو تلاش کیے بغیر مختلف مقاصد کے لیے بش سکرپٹ میں '*' لاگو کر سکتے ہیں۔ نام کی ایک bash فائل بنائیں۔ 'check.sh' مندرجہ ذیل اسکرپٹ کے ساتھ۔ یہاں ، جب صارف ٹائپ کرے گا ' y 'یا' Y 'یا' yes 'یا' yes ' پھر 'تصدیق شدہ' پرنٹ کرے گا اور جب ٹائپ ٹائپ کرے گا۔ 'ن' یا 'ن' یا 'نہیں' یا 'نہیں' پھر 'تصدیق نہیں' پرنٹ کریں گے.

#!/bin/bash
باہر پھینک دیا 'کیا آپ تصدیق کرنا چاہتے ہیں؟'
پڑھیںجواب
معاملہ $ جواب میں
[وائی]* ) باہر پھینک دیا 'تصدیق شدہ۔'؛؛
[نمبر]* ) باہر پھینک دیا 'تصدیق نہیں.'؛؛
*) باہر پھینک دیا 'دوبارہ کوشش کریں.'؛؛
ایساک

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

$لشکرcheck.sh

اسکوائر بریکٹ - ([])

‘[]’ رینج سے کردار سے ملنے کے لیے استعمال کیا جاتا ہے۔ زیادہ تر استعمال شدہ رینج ڈیکلریشن میں سے کچھ کا ذکر ذیل میں کیا گیا ہے۔

تمام بڑے حروف تہجی کی حد کے مطابق تعریف کی جاتی ہے ، [: بالائی:] یا [A-Z]۔

تمام چھوٹے حروف تہجی کی حد کی طرف سے وضاحت کی گئی ہے ، [: لوئر:] یا [a-z]۔

تمام عددی ہندسوں کی حد کی طرف سے وضاحت کی جاتی ہے ، [: ہندسہ:] یا [0-9]۔

تمام بڑے اور چھوٹے حروف کی حد کی طرف سے وضاحت کی گئی ہے ، [: alpha:] یا [a-zA-z]۔

تمام بڑے حروف تہجی ، چھوٹے حروف تہجی اور ہندسوں کی حد کی طرف سے وضاحت کی جاتی ہے ، [: alnum:] یا [a-zA-Z0-9]

مثال -1:

ان فائلوں اور فولڈرز کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں جن کے نام پر مشتمل ہے۔ p یا کیا یا r یا s .

$ایل ایس - [پی-ایس]*

مثال 2:

تمام فائلوں اور فولڈرز کو تلاش کرنے کے لیے درج ذیل کمانڈ کو چلائیں جن کا نام 1 سے 5 تک کسی بھی ہندسے سے شروع ہوتا ہے۔

$ایل ایس - [-]*

اس کی کمی ہے ()

آپ استعمال کر سکتے ہیں ’’ مربع بریکٹ کے ساتھ خاص طور پر گلوبنگ پیٹرن کی وضاحت کریں۔ ’’ مربع بریکٹ کے اندر یا باہر استعمال کیا جا سکتا ہے۔ '^' کا استعمال اسکوائر بریکٹ کے باہر فائل کے ان مواد کو تلاش کرنے کے لیے کیا جاتا ہے جو کہ حروف کی دی گئی رینج سے شروع ہوتا ہے۔ '^' کو مربع بریکٹ کے اندر استعمال کیا جاتا ہے تاکہ فائلوں کے تمام مواد کو نمایاں کر کے حروف کی دی گئی رینج سے شروع ہو جائے۔ آپ فائل سے خاص مواد تلاش کرنے کے لیے مختلف قسم کے گلوبنگ پیٹرن استعمال کرسکتے ہیں۔ 'گرفت' bash میں مواد کی تلاش کے لیے کمانڈ استعمال کیا جاتا ہے۔ فرض کریں ، آپ کے پاس ایک ٹیکسٹ فائل ہے جس کا نام ہے۔ 'list.txt' مندرجہ ذیل مواد کے ساتھ۔ اس فائل کے لیے درج ذیل مثالوں کی جانچ کریں۔

سیب
4000۔
کیلا
700۔
کینو
850۔
ناشپاتی
9000۔
جیکڈر

مثال - 1:

ان لائنوں کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو شروع ہوتی ہے۔ P یا Q یا R۔ .

$ grep '^[P-R]' list.txt۔

مثال - 2:

ان لائنوں کو نمایاں کرنے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو شروع ہوتی ہے۔ اے یا بی یا سی۔ .

$ grep '[^A-C]' list.txt۔

حیرت انگیز نشان - (!)

آپ استعمال کر سکتے ہیں '!' رینج پیٹرن کے اندر. یہ رینج پیٹرن سے باہر '^' علامت کے استعمال کی طرح کام کرتا ہے۔ استعمال کرنے کی کچھ مثالیں۔ '!' نشان نیچے دیا گیا ہے۔

مثال - 1:

ان لائنوں کو دکھانے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو شروع ہوتی ہے۔ 'P' یا Q یا R .

$ grep [! P-R] list.txt

مثال - 2:

ان لائنوں کو دکھانے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو کسی بھی ہندسے سے شروع ہوتی ہے۔ 4 سے 8۔ .

$ grep [! 4-8] list.txt

ڈالر کا نشان - ($)

'$' اختتامی کردار کی وضاحت کے لیے استعمال کیا جاتا ہے۔ اگر آپ جانتے ہیں کہ آخری کردار کی بنیاد پر معلومات تلاش کرنا چاہتے ہیں تو آپ استعمال کر سکتے ہیں۔ '$' گلوبنگ پیٹرن میں

مثال - 1:

ان لائنوں کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو ختم ہوتی ہے۔ 'سے' .

$ grep a $ list.txt

مثال - 2:

ان لائنوں کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں۔ list.txt فائل جو نمبر کے ساتھ ختم ہوتی ہے۔ پچاس .

$ grep 50 $ list.txt

گھوبگھرالی بریکٹ - ({})

'{}' ایک سے زیادہ گلوبنگ پیٹرن کے ساتھ فائل کے ناموں سے ملنے کے لیے استعمال کیا جا سکتا ہے۔ ہر پیٹرن کو بغیر کسی جگہ کے گھوبگھرالی بریکٹ میں '،' سے الگ کیا جاتا ہے۔ کچھ مثالیں ذیل میں دی گئی ہیں۔

مثال - 1:

ان فائلوں کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں جن کے نام 5 حروف لمبے ہیں اور ایکسٹینشن ہے۔ 'ایسیچ' یا فائلوں کے آخری دو حروف ہیں۔ 'سینٹ' اور توسیع ہے 'TXT' .

$ ls -l {؟؟؟؟؟. sh،*st.txt}

مثال - 2:

ان تمام فائلوں کو حذف کرنے کے لیے درج ذیل کمانڈ چلائیں جن کی ایکسٹینشنز ہیں۔ 'doc' یا 'docx' .

$rm {*.doc ،*.docx}

پائپ (|)

'|' نشانی گلوبنگ پیٹرن پر ایک سے زیادہ شرطیں لگانے کے لیے بھی استعمال ہوتی ہے۔ ہر پیٹرن کو کمانڈ میں '|' علامت سے الگ کیا جاتا ہے۔

مثال - 1:

ان فائل ناموں کو تلاش کرنے کے لیے درج ذیل کمانڈ چلائیں جو کردار 'a' سے شروع ہو رہے ہیں اور اس میں توسیع 'bash' یا 'sh' ہے۔

$ایل ایسکو*+(.باش|.ایسیچ)

مثال - 2:

نام کی ایک bash فائل بنائیں۔ 'menu.bash' اور درج ذیل اسکرپٹ کو شامل کریں۔ اگر صارف ٹائپ کرتا ہے۔ 1 یا ایس۔ پھر یہ پرنٹ کرے گا متن کی تلاش۔ . اگر صارف ٹائپ کرتا ہے۔ 2 یا آر۔ پھر یہ پرنٹ کرے گا متن کی جگہ لے رہا ہے۔ . اگر صارف ٹائپ کرتا ہے۔ 3 یا ڈی۔ پھر یہ پرنٹ کرے گا متن حذف کیا جا رہا ہے۔ . یہ چھاپے گا۔ دوبارہ کوشش کریں کسی دوسرے ان پٹ کے لیے۔

#!/bin/bash
باہر پھینک دیا 'مینو میں سے کوئی بھی آپشن منتخب کریں:'
پڑھیںجواب
معاملہ $ جواب میں
|ایس) باہر پھینک دیا 'متن کی تلاش'؛؛
|آر۔) باہر پھینک دیا 'متن کی تبدیلی'؛؛
|ڈی۔) باہر پھینک دیا 'متن حذف کرنا'؛؛
*) باہر پھینک دیا 'دوبارہ کوشش کریں.'؛؛
ایساک

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

$لشکرmenu.bash

نتیجہ

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

مزید معلومات کے لیے یہ ویڈیو چیک کریں: