هذا الدليل يشرح كيفية استخدام أداة egrep
للبحث داخل الملفات النصية المكتوبة بالعربية على أنظمة لينكس/يونكس، وهو مفيد جدًا للغويين، المترجمين، والمهتمين بتحليل النصوص.
أساسيات البحث عن النص العربي
# البحث البسيط عن كلمة عربية
egrep 'الكلمة' ملف.txt
# البحث بدون حساسية لحالة الأحرف (case insensitive)
egrep -i 'الكلمة' ملف.txt
# عرض رقم السطر مع النتيجة
egrep -n 'الكلمة' ملف.txt
# البحث عن جملة أو عبارة كاملة
egrep 'هذه جملة كاملة' ملف.txt
البحث عن كلمات محددة
# البحث عن عدة كلمات (OR منطقي)
egrep 'كلمة1|كلمة2|كلمة3' ملف.txt
# البحث عن كلمة في بداية السطر
egrep '^الكلمة' ملف.txt
# البحث عن كلمة في نهاية السطر
egrep 'الكلمة$' ملف.txt
# البحث عن كلمات مطابقة تمامًا (استخدام حدود الكلمات)
egrep '\bالكلمة\b' ملف.txt
البحث باستخدام النطاقات
# البحث عن أحرف من نطاق معين (مثل جميع الحروف من أ إلى ص)
egrep '[أ-ص]' ملف.txt
# البحث عن أي حرف عربي تقريبي
egrep '[ء-ي]' ملف.txt
# البحث عن كلمات تبدأ بحرف معين
egrep '\b[اأإآ]' ملف.txt
البحث عن حروف أو رموز معينة
# البحث عن التشكيل (الحركات القصيرة)
egrep '[ًٌٍَُِّْٰ]' ملف.txt
# البحث عن الهمزات بأنواعها
egrep '[أإآءؤئ]' ملف.txt
# البحث عن الألف المقصورة
egrep 'ى' ملف.txt
# البحث عن علامات تنوين
egrep '[ًٌٍ]' ملف.txt
# البحث عن الأرقام العربية/الهندية
egrep '[٠-٩]' ملف.txt
# البحث عن أرقام هندية وغربية معًا
egrep '[٠-٩0-9]' ملف.txt
تركيبات البحث المتقدم
# البحث عن كلمة مع تنوع في التشكيل (باستخدام ? للتكرار الاختياري)
egrep 'سَ?لَ?مَ?' ملف.txt
# البحث عن كلمات تنتهي بتشكيل
egrep '[ء-ي][ًٌٍَُِّْٰ]+' ملف.txt
# البحث عن سطر يحتوي على كلمة ثم كلمة أخرى (استخدم التعبيرات النقطية)
egrep 'كلمة.*كلمة2' ملف.txt
# تجاهل الحروف المشكولة
egrep 'س[^ًٌٍَُِّْٰ]*ل[^ًٌٍَُِّْٰ]*م' ملف.txt
ملاحظات مهمة حول الترميز
# تأكد أن الملف يستخدم ترميز UTF-8:
file -i ملف.txt
# لتحويل من ترميز Windows-1256 إلى UTF-8:
iconv -f WINDOWS-1256 -t UTF-8 ملف.txt > ملف_utf8.txt
# لتفادي مشاكل العرض:
LANG=ar_SA.UTF-8 egrep 'الكلمة' ملف.txt
# يمكن تثبيت حزم تدعم العربية بشكل أفضل (حسب التوزيعة):
sudo apt install locales
sudo dpkg-reconfigure locales
دليل سريع
الوصف | الأمر |
---|---|
بحث بسيط | egrep 'كلمة' ملف |
بحث غير حساس للحالة | egrep -i 'كلمة' ملف |
عرض رقم السطر | egrep -n 'كلمة' ملف |
بحث عن عدة كلمات | egrep 'كلمة1|كلمة2' ملف |
بداية السطر | egrep '^كلمة' ملف |
نهاية السطر | egrep 'كلمة$' ملف |
أي حرف عربي | egrep '[ء-ي]' ملف |
تشكيلات وحركات | egrep '[ًٌٍَُِّْٰ]' ملف |
ألف مقصورة | egrep 'ى' ملف |
أرقام عربية/هندية | egrep '[٠-٩]' ملف |
تحويل الترميز لـ UTF-8 | iconv -f WINDOWS-1256 -t UTF-8 ملف.txt > ملف_utf8.txt |
نصائح إضافية
# لتصفية النتائج مع عرض عدد التكرارات:
egrep -o 'كلمة' ملف.txt | wc -l
# دمج egrep مع less للعرض التفاعلي:
egrep 'كلمة' ملف.txt | less
# للبحث في عدة ملفات دفعة واحدة:
egrep -r 'كلمة' مجلد/
# لتلوين النتائج تلقائيًا (إذا كانت غير مفعلة):
GREP_OPTIONS='--color=auto'