البرمجة

سكريبت Shell للبحث عن سلاسل النصوص بين ملفين وطباعة النتائج

في هذا السياق، يمكننا استخدام سكريبت Shell لتحقيق المطلوب بشكل فعال. يتضمن هذا السكريبت القدرة على البحث عن سلاسل نصية في ملف B وطباعة “نعم” إذا تم العثور على السلسلة في ملف A، وإلا سيتم طباعة “لا”.

للقيام بذلك، يمكننا استخدام أدوات وأوامر الشل المتاحة. إليك سكريبت قد يلبي متطلباتك:

bash
#!/bin/bash # اسم الملف الأول الذي يحتوي على السلاسل fileA="مسار_الملف_A.txt" # اسم الملف الثاني الذي سيتم البحث فيه fileB="مسار_الملف_B.txt" # قراءة كل سلسلة من ملف A والبحث عنها في ملف B while IFS= read -r lineA do # استخدام أمر grep للبحث عن السلسلة في ملف B if grep -q "$lineA" "$fileB"; then echo "نعم - $lineA" else echo "لا - $lineA" fi done < "$fileA"

يرجى استبدال “مسار_الملف_A.txt” و “مسار_الملف_B.txt” بمسارات الملفات الفعلية التي تريد استخدامها. يقوم السكريبت بقراءة كل سلسلة من ملف A ويستخدم أمر grep للبحث عنها في ملف B. إذا تم العثور على السلسلة، يتم طباعة “نعم”، وإلا يتم طباعة “لا”.

هذا السكريبت يقدم حلاً بسيطاً وفعالاً لمشكلتك. يمكن تحسينه أو تعديله حسب احتياجاتك الخاصة.

المزيد من المعلومات

هذا السكريبت البسيط يعتمد على استخدام أوامر الشل القياسية مثل while loop و grep. سأوضح بعض المعلومات الإضافية حول الأوامر والمفاهيم المستخدمة في السكريبت:

  1. while loop:
    يستخدم while loop لقراءة كل سلسلة من ملف A وتنفيذ الأوامر داخل الحلقة حتى يتم قراءة جميع السلاسل.

    bash
    while IFS= read -r lineA do # أوامر تنفيذ داخل الحلقة done < "$fileA"
    • IFS= read -r lineA: يتم استخدامها لقراءة السطور من ملف A وتخزين كل سطر في المتغير lineA.
  2. grep command:
    يستخدم grep للبحث عن السلسلة في ملف B.

    bash
    if grep -q "$lineA" "$fileB"; then # أمر يتم تنفيذه إذا تم العثور على السلسلة في ملف B else # أمر يتم تنفيذه إذا لم يتم العثور على السلسلة في ملف B fi
    • -q option: يجعل grep صامتًا ولا يطبع النتائج على الشاشة، وإنما يستخدم فقط للتحقق من وجود السلسلة.
  3. المتغيرات:

    • fileA="مسار_الملف_A.txt": يحدد مسار ملف A.
    • fileB="مسار_الملف_B.txt": يحدد مسار ملف B.
  4. تخزين النتائج:
    يتم طباعة نتائج البحث على الشاشة باستخدام أوامر echo. يمكنك تحويل النتائج إلى ملف آخر إذا كنت ترغب في حفظها لاحقًا.

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

زر الذهاب إلى الأعلى