سكريبت Shell للبحث عن سلاسل النصوص بين ملفين وطباعة النتائج
في هذا السياق، يمكننا استخدام سكريبت Shell لتحقيق المطلوب بشكل فعال. يتضمن هذا السكريبت القدرة على البحث عن سلاسل نصية في ملف B وطباعة “نعم” إذا تم العثور على السلسلة في ملف A، وإلا سيتم طباعة “لا”.
للقيام بذلك، يمكننا استخدام أدوات وأوامر الشل المتاحة. إليك سكريبت قد يلبي متطلباتك:
-
افضل 10 جامعات في السويد06/11/2023
-
تخصيص مسار package.json في npm24/02/2024
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
. سأوضح بعض المعلومات الإضافية حول الأوامر والمفاهيم المستخدمة في السكريبت:
-
while
loop:
يستخدمwhile
loop لقراءة كل سلسلة من ملف A وتنفيذ الأوامر داخل الحلقة حتى يتم قراءة جميع السلاسل.bashwhile IFS= read -r lineA do # أوامر تنفيذ داخل الحلقة done < "$fileA"
IFS= read -r lineA
: يتم استخدامها لقراءة السطور من ملف A وتخزين كل سطر في المتغيرlineA
.
-
grep
command:
يستخدمgrep
للبحث عن السلسلة في ملف B.bashif grep -q "$lineA" "$fileB"; then # أمر يتم تنفيذه إذا تم العثور على السلسلة في ملف B else # أمر يتم تنفيذه إذا لم يتم العثور على السلسلة في ملف B fi
-q
option: يجعلgrep
صامتًا ولا يطبع النتائج على الشاشة، وإنما يستخدم فقط للتحقق من وجود السلسلة.
-
المتغيرات:
fileA="مسار_الملف_A.txt"
: يحدد مسار ملف A.fileB="مسار_الملف_B.txt"
: يحدد مسار ملف B.
-
تخزين النتائج:
يتم طباعة نتائج البحث على الشاشة باستخدام أوامرecho
. يمكنك تحويل النتائج إلى ملف آخر إذا كنت ترغب في حفظها لاحقًا.
هذا السكريبت يمثل بداية جيدة لأتمتة عملية البحث عن سلاسل نصية بين ملفين. يمكن تعديله وتحسينه وفقًا لاحتياجاتك الخاصة، مثل إضافة تسليم النتائج إلى ملف آخر أو استخدام تقنيات متقدمة في مجال معالجة النصوص.