ذكري المظهر

كيفية التحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية في bash

Linux Tutorial for Beginners: Introduction to Linux Operating System

Linux Tutorial for Beginners: Introduction to Linux Operating System

جدول المحتويات:

Anonim

من أكثر العمليات شيوعًا عند العمل مع السلاسل في Bash تحديد ما إذا كانت السلسلة تحتوي على سلسلة أخرى أم لا.

، سنعرض لك عدة طرق للتحقق مما إذا كانت السلسلة تحتوي على سلسلة فرعية.

باستخدام أحرف البدل

أسهل طريقة هي إحاطة السلسلة الفرعية برموز أحرف البدل النجمية (العلامة النجمية) * ومقارنتها بالسلسلة. Wildcard هو رمز يستخدم لتمثيل الصفر أو حرف أو أكثر.

إذا عاد الاختبار إلى true ، فإن السلسلة الفرعية موجودة في السلسلة.

في المثال أدناه ، نحن نستخدم عبارة if ومشغل المساواة ( == ) للتحقق مما إذا تم العثور على السلسلة الفرعية SUB ضمن السلسلة STR :

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

عند التنفيذ ، سينتج البرنامج النصي:

It's there.

باستخدام مشغل الحالة

بدلاً من استخدام عبارة if ، يمكنك أيضًا استخدام عبارة الحالة للتحقق مما إذا كانت السلسلة تتضمن سلسلة أخرى أم لا.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' case $STR in *"$SUB"*) echo -n "It's there.";; esac

باستخدام مشغل Regex

خيار آخر لتحديد ما إذا كانت سلسلة فرعية محددة داخل سلسلة هو استخدام عامل التشغيل regex =~ . عند استخدام عامل التشغيل هذا ، تعتبر السلسلة الصحيحة تعبيرًا منتظمًا.

الفترة التي تليها علامة النجمة .* تطابق الصفر أو أكثر وتحدث أي حرف باستثناء حرف السطر الجديد.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if]; then echo "It's there." fi

سوف يردد النص ما يلي:

It's there.

باستخدام Grep

يمكن أيضًا استخدام الأمر grep للعثور على سلاسل في سلسلة أخرى.

في المثال التالي ، نقوم بتمرير السلسلة $STR كمدخل إلى grep والتحقق مما إذا كانت السلسلة $SUB موجودة ضمن سلسلة الإدخال. سيعود الأمر true أو false حسب الاقتضاء.

#!/bin/bash STR='GNU/Linux is an operating system' SUB='Linux' if grep -q "$SUB" <<< "$STR"; then echo "It's there" fi

يخبر الخيار -q grep بالهدوء ، لتجاهل الإخراج.

استنتاج

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

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

محطة باش