التحقق من وجود سلاسل فرعية في البرامج النصية لباش

Bash

مقدمة لاحتواء السلسلة في باش

عند العمل باستخدام برامج Bash النصية، من الشائع أن تواجه مواقف تحتاج فيها إلى التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية معينة. تعد هذه مهمة أساسية في العديد من سيناريوهات البرمجة النصية، مثل تحليل بيانات الإدخال أو التحقق من صحة السلاسل أو تصفية المحتوى بناءً على معايير معينة.

في هذه المقالة، سنستكشف طرقًا مختلفة لتحقيق ذلك في Bash، بما في ذلك استخدام العبارات الشرطية والأوامر مثل `echo` و`grep`. سنناقش أيضًا الأساليب الأكثر كفاءة وقابلية للقراءة لجعل البرامج النصية الخاصة بك أكثر قابلية للصيانة وأقل عرضة للأخطاء.

يأمر وصف
[[ ]] تعبير شرطي يستخدم لاختبار السلاسل والشروط الأخرى في Bash.
* حرف بدل يُستخدم لتمثيل أي عدد من الأحرف في تطابق نمط السلسلة.
echo أمر يستخدم لعرض سطر من النص أو سلسلة تم تمريرها كوسيطة.
grep أداة مساعدة لسطر الأوامر للبحث في بيانات النص العادي عن الأسطر المطابقة لتعبير عادي.
-q خيار لـ grep يمنع الإخراج العادي ويعيد حالة الخروج فقط.
case عبارة شرطية تستخدم لمطابقة الأنماط في Bash.
;; محدد يستخدم في عبارات الحالة للفصل بين إجراءات الأنماط المختلفة.

فهم التحقق من السلسلة الفرعية في باش

في النص الأول نستخدم للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية محددة. نحدد سلسلة رئيسية وسلسلة فرعية، ثم نستخدم build، والذي يسمح بإجراء مقارنات سلسلة متقدمة. داخل الأقواس نستخدم حرف البدل لتمثيل أي عدد من الأحرف قبل السلسلة الفرعية وبعدها. إذا كان الشرط صحيحا، يطبع البرنامج النصي "إنه هناك!"؛ وإلا فإنه يطبع "إنه ليس هناك!". هذه الطريقة فعالة وتستفيد من إمكانيات Bash المضمنة لمطابقة الأنماط.

يستخدم السيناريو الثاني و الأوامر لتحقيق نفس النتيجة. نحدد مرة أخرى سلسلة رئيسية وسلسلة فرعية، ثم نستخدمها لإخراج السلسلة الرئيسية وتوجيهها إلى grep باستخدام خيار لقمع الإخراج العادي. يبحث عن السلسلة الفرعية داخل السلسلة الرئيسية. إذا تم العثور على السلسلة الفرعية، فسيطبع البرنامج النصي "It's There!"؛ إذا لم يكن الأمر كذلك، فإنه يطبع "إنه ليس هناك!". يعمل هذا الأسلوب على الاستفادة من الإمكانات القوية للبحث عن النص مما يجعله مناسبًا للنصوص البرمجية التي تحتاج إلى مطابقة أنماط النص المعقدة.

استكشاف عمليات سلسلة Bash المتقدمة

يستخدم البرنامج النصي الثالث أ بيان للتحقق من وجود سلسلة فرعية. بعد تحديد السلسلة الرئيسية والسلسلة الفرعية، فإن يطابق البيان السلسلة الرئيسية مقابل أنماط مختلفة. إذا كانت السلسلة الفرعية موجودة، فسيتم تنفيذ الإجراء المقابل، وطباعة "إنها هناك!". إذا لم يتم العثور على السلسلة الفرعية، فسيقوم الإجراء الافتراضي بطباعة "It's not There!". تعتبر هذه الطريقة مفيدة بشكل خاص عندما تكون هناك أنماط متعددة للتحقق منها، مثل يمكن أن تتعامل العبارة مع منطق التفرع المعقد بشكل أكثر نظافة من المنطق المتعدد if-else صياغات.

بشكل عام، توفر كل طريقة من هذه الطرق طريقة لتحديد ما إذا كانت السلسلة تحتوي على سلسلة فرعية محددة في Bash. يعتمد اختيار الطريقة على مدى تعقيد مطابقة السلسلة المطلوبة والمتطلبات المحددة للبرنامج النصي. استخدام مع أحرف البدل واضحة وفعالة لعمليات التحقق البسيطة، أثناء الدمج و يوفر مطابقة أنماط أكثر قوة. ال case من ناحية أخرى، يعد البيان مثاليًا للتعامل مع شروط المطابقة المتعددة بطريقة منظمة.

استخدام العبارات الشرطية للتحقق من وجود سلاسل فرعية في Bash

طريقة البرمجة باش

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Check if the substring is present in the main string
if [[ "$string" == *"$substring"* ]]; then
  echo "It's there!"
else
  echo "It's not there!"
fi

استخدام Echo وGrep للكشف عن السلاسل الفرعية في Bash

الجمع بين أوامر Echo وGrep

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use echo and grep to check if the substring is present
if echo "$string" | grep -q "$substring"; then
  echo "It's there!"
else
  echo "It's not there!"
fi

استخدام بيانات الحالة للكشف عن السلسلة الفرعية في Bash

برمجة باش مع بيانات الحالة

#!/bin/bash
# Define the main string
string="My string"
# Define the substring to search for
substring="foo"
# Use case statement to check for the substring
case "$string" in
  *"$substring"*)
    echo "It's there!"
    ;;
  *)
    echo "It's not there!"
    ;;
esac

طرق متقدمة لاحتواء السلسلة في Bash

إلى جانب الطرق الأساسية للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية في Bash، هناك تقنيات أكثر تقدمًا يمكن أن تكون مفيدة في سيناريوهات مختلفة. تتضمن إحدى هذه الطرق استخدام التعبيرات العادية مع الامتداد يأمر. هي لغة برمجة قوية لمسح الأنماط ومعالجتها. باستخدام ، يمكنك إجراء عمليات سلسلة معقدة بمرونة أكبر. على سبيل المثال، يمكنك استخدام awk للبحث عن سلسلة فرعية داخل سلسلة وتنفيذ الإجراءات بناءً على المطابقة.

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

الأسئلة المتداولة حول احتواء السلسلة في Bash

  1. كيف يمكنني التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية باستخدام ؟
  2. للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية باستخدام ، يمكنك استخدام الأمر:
  3. هل بإمكاني استخدم للتحقق من وجود سلسلة فرعية؟
  4. نعم، يمكنك استخدام للتحقق من وجود سلسلة فرعية باستخدام الأمر:
  5. ما هي ميزة استخدام زيادة ؟
  6. يوفر إمكانات أكثر قوة لمعالجة النصوص ويمكنه تنفيذ إجراءات بناءً على تطابقات الأنماط، مما يجعله أكثر تنوعًا من .
  7. كيف يمكنني تجاهل الحالة عند البحث عن سلسلة فرعية؟
  8. لتجاهل حالة الأحرف عند البحث عن سلسلة فرعية، يمكنك استخدام الأمر الخيار مع :
  9. هل من الممكن استخدامها مع تصريحات في باش؟
  10. نعم، يمكنك استخدام regex مع البيانات في Bash باستخدام المشغل أو العامل:

الأفكار النهائية حول احتواء السلسلة في Bash

يعد تحديد ما إذا كانت السلسلة تحتوي على سلسلة فرعية في Bash مهمة شائعة يمكن تنفيذها باستخدام عدة طرق، بما في ذلك العبارات الشرطية وأوامر grep وبيانات الحالة. توفر كل طريقة طريقة فريدة لحل المشكلة، مما يسمح لك باختيار الطريقة الأكثر ملاءمة بناءً على احتياجاتك الخاصة. من خلال إتقان هذه التقنيات، يمكنك تحسين كفاءة وسهولة قراءة نصوص Bash الخاصة بك.