باش غلوبينج تعليمي

Bash Globbing Tutorial



لا يدعم Bash التعبيرات العادية الأصلية مثل بعض لغات البرمجة القياسية الأخرى. تسمى ميزة Bash shell المستخدمة لمطابقة أنواع معينة من الأنماط أو توسيعها. يستخدم Globbing بشكل أساسي لمطابقة أسماء الملفات أو البحث عن محتوى في ملف. يستخدم Globbing أحرف البدل لإنشاء النمط. يتم وصف أحرف البدل الأكثر شيوعًا التي يتم استخدامها لإنشاء أنماط globbing أدناه.

'؟' يستخدم لمطابقة أي حرف واحد. يمكنك استخدام '؟' لعدة مرات لمطابقة عدة أحرف.







مثال 1:



لنفترض أنك تريد البحث في أسماء الملفات النصية التي يبلغ طول أسماؤها 4 أحرف وامتدادها .رسالة قصيرة . يمكنك تطبيق نمط globbing باستخدام ' ؟ أربع مرات للقيام بهذه المهمة.



تعرف على قائمة بجميع الملفات والمجلدات الخاصة بالدليل الحالي.





$ls-ال

قم بتشغيل الأمر التالي ابحث في الملفات التي تتكون أسماؤها من أربعة أحرف وغير معروفة.

$ ls -l ؟؟؟؟. txt



المثال 2:

لنفترض أنك تريد البحث في ملفات المستندات التي تتكون أسماؤها من 8 أحرف ، وأول 4 أحرف هي و ، س ، س و ر والتمديد هو وثيقة . قم بتشغيل الأمر التالي باستخدام نمط globbing للبحث في الملفات.

$ls -القدم ؟؟؟؟. doc

المثال 3:

افترض أنك تعرف اسم الملف 'أفضل' والامتداد هو 3 أحرف ، لكن لا تعرف الامتداد. قم بتشغيل الأمر التالي باستخدام 'للبحث في جميع الملفات التي تحمل الاسم' اختبار 'والتي تحتوي على أي امتداد يتكون من ثلاثة أحرف.

$ls -الأفضل.؟؟؟

النجمة - (*)

'*' يستخدم لمطابقة صفر أو أكثر من الأحرف. إذا كان لديك معلومات أقل للبحث في أي ملف أو معلومات ، فيمكنك استخدام '*' في نمط globbing.

مثال 1:

لنفترض أنك تريد البحث في جميع ملفات 'رر' تمديد. قم بتشغيل الأمر التالي باستخدام '*' للقيام بهذه المهمة.

$ls -ال *.pl

المثال 2:

لنفترض أنك تعرف الحرف الأول لاسم الملف فقط وهو 'إلى' . قم بتشغيل الأمر التالي باستخدام '*' للبحث في جميع ملفات الدليل الحالي التي بدأت أسماؤها بـ 'إلى' .

$ls -الإلى*.*

المثال 3:

يمكنك تطبيق '*' في نص باش لأغراض مختلفة دون البحث عن الملفات. قم بإنشاء ملف bash يسمى 'check.sh' بالنص التالي. هنا ، عندما يكتب المستخدم ' نعم أو 'نعم' أو 'نعم' أو 'نعم' من ثم 'تم تأكيد' سيطبع ومتى سيكتب النوع 'n' أو 'N' أو 'لا' أو 'لا' من ثم 'غير مؤكد' سوف تطبع.

#!/bin/bash
رما - طرد - قذف 'هل تريد التأكيد؟'
اقرأإجابه
قضية الجواب في
[ص]* ) رما - طرد - قذف 'تم تأكيد.'؛؛
[لا]* ) رما - طرد - قذف 'غير مؤكد.'؛؛
*) رما - طرد - قذف 'حاول مجددا.'؛؛
esac

قم بتشغيل البرنامج النصي.

$سحقcheck.sh

قوس مربع - ([])

'[]' يستخدم لمطابقة الحرف من النطاق. بعض إعلانات النطاق المستخدمة في الغالب مذكورة أدناه.

يتم تحديد جميع الحروف الأبجدية الكبيرة بواسطة النطاق ، [: upper:] أو [A-Z].

يتم تحديد جميع الحروف الأبجدية الصغيرة من خلال النطاق ، [: Lower:] أو [a-z].

يتم تحديد جميع الأرقام الرقمية بواسطة النطاق ، [: digit:] أو [0-9].

يتم تحديد كل الحروف الأبجدية الكبيرة والصغيرة من خلال النطاق مثل ، [: alpha:] أو [a-zA-z].

يتم تحديد جميع الحروف الأبجدية الكبيرة والأحرف الصغيرة والأرقام من خلال النطاق على النحو التالي ، [: alnum:] أو [a-zA-Z0-9]

مثال 1:

قم بتشغيل الأمر التالي للبحث في جميع الملفات والمجلدات التي يحتوي اسمها ص أو ماذا او ما أو ص أو س .

$ls -ال [ملاحظة]*

المثال 2:

قم بتشغيل الأمر التالي للبحث في جميع الملفات والمجلدات التي يبدأ اسمها بأي رقم من 1 إلى 5.

$ls -ال [1-5]*

يفتقر - (^)

يمكنك استخدام '^' مع قوس مربع لتحديد نمط globbing بشكل أكثر تحديدًا. '^' يمكن استخدامها داخل أو خارج قوس مربع. يتم استخدام '^' خارج القوس المربع للبحث في محتويات الملف التي تبدأ بنطاق معين من الأحرف. يتم استخدام '^' داخل القوس المربع لإظهار كل محتوى الملف عن طريق تمييز السطور التي تبدأ بنطاق معين من الأحرف. يمكنك استخدام أنواع مختلفة من أنماط الخفقان للبحث عن محتوى معين من ملف. 'سيطرة' يتم استخدام الأمر للبحث عن محتوى في bash. افترض أن لديك ملفًا نصيًا باسم 'list.txt' بالمحتوى التالي. اختبر الأمثلة التالية لهذا الملف.

تفاح
4000
موز
700
البرتقالي
850
كمثرى
9000
الكاكايا

مثال 1:

قم بتشغيل الأمر التالي للبحث عن تلك السطور من list.txt الملف الذي يبدأ بـ P أو Q أو R. .

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

مثال - 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

علامة الدولار - ($)

'$' يستخدم لتحديد حرف النهاية. إذا كنت تعرف أنك تريد البحث عن المعلومات بناءً على الحرف الأخير ، فيمكنك استخدام '$' في نمط globbing.

مثال 1:

قم بتشغيل الأمر التالي للبحث عن تلك السطور من list.txt الملف الذي ينتهي بـ 'إلى' .

$ grep a $ list.txt

مثال - 2:

قم بتشغيل الأمر التالي للبحث عن تلك السطور من list.txt الملف الذي ينتهي بالرقم خمسون .

$ grep 50 $ list.txt

قوس مجعد - ({})

'{}' يمكن استخدامها لمطابقة أسماء الملفات مع أكثر من نمط globbing. يتم فصل كل نمط بعلامة '،' في قوس مجعد بدون أي مسافة. وفيما يلي بعض الأمثلة على ذلك.

مثال 1:

قم بتشغيل الأمر التالي للبحث في تلك الملفات التي يبلغ طول أسماؤها 5 أحرف وامتدادها 'ش' أو آخر حرفين من الملفات هما 'شارع' والامتداد 'رسالة قصيرة' .

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

مثال - 2:

قم بتشغيل الأمر التالي لحذف جميع الملفات ذات الامتدادات 'doc' أو 'docx' .

$جمهورية مقدونيا {*.doc ،*.docx}

الأنابيب- (|)

تُستخدم علامة '|' أيضًا لتطبيق أكثر من شرط على نمط globbing. يتم فصل كل نمط برمز '|' في الأمر.

مثال 1:

قم بتشغيل الأمر التالي للبحث في أسماء الملفات التي تبدأ بالحرف 'a' ولها الامتداد 'bash' أو 'sh'.

$lsإلى*+(.سحق|)

مثال - 2:

قم بإنشاء ملف bash يسمى 'menu.bash' وأضف النص التالي. إذا كان نوع المستخدم 1 أو S. ثم ستتم طباعته نص البحث . إذا كان نوع المستخدم 2 أو R. ثم ستتم طباعته استبدال النص . إذا كان نوع المستخدم 3 أو د ثم ستتم طباعته حذف النص . سوف تطبع حاول مجددا لأي مدخلات أخرى.

#!/bin/bash
رما - طرد - قذف 'حدد أي خيار من القائمة:'
اقرأإجابه
قضية الجواب في
1 |س) رما - طرد - قذف 'نص البحث'؛؛
2 |ر) رما - طرد - قذف 'استبدال النص'؛؛
3 |د) رما - طرد - قذف 'حذف النص'؛؛
*) رما - طرد - قذف 'حاول مجددا.'؛؛
esac

قم بتشغيل البرنامج النصي.

$سحقالقائمة باش

استنتاج

يتم شرح بعض أنماط globbing الأكثر شيوعًا في هذا البرنامج التعليمي باستخدام أمثلة بسيطة جدًا. آمل بعد ممارسة الأمثلة المذكورة أعلاه ، أن يكون مفهوم globbing واضحًا لك وستكون قادرًا على تطبيقه في أوامر bash والبرامج النصية بنجاح.

لمزيد من المعلومات تحقق من هذا الفيديو: