نظرة عامة
يُعد أمر grep أداة لا غنى عنها عند تحليل الملفات النصية الضخمة أو سجلات النظام في بيئة لينكس. في هذا المقال، سنستعرض التقنيات العملية الأساسية لتشغيل grep في طرفية Ubuntu للبحث عن النصوص المطلوبة بسرعة وتفسير نتائج المخرجات بدقة.
البحث الأساسي عن النصوص وخيار تجاهل حالة الأحرف (-i)
نقوم بتشغيل الأمر mkdir -p ~/grep_demo && cd ~/grep_demo لإنشاء مساحة عمل مستقلة وتغيير الدليل إليها من أجل التطبيق العملي لأمر grep.

نقوم بتشغيل الأمر echo -e 'Ubuntu Linux Server\nubuntu desktop\nDebian GNU/Linux' > sample.txt لإنشاء ملف نصي يحتوي على سلاسل نصية تجريبية لاستخدامها في اختبار البحث.

يبحث أمر grep عن نمط أو نص محدد داخل الملفات أو النصوص ويعرض الأسطر المطابقة.
في الحالة الافتراضية، يميّز الأمر بدقة بين الأحرف الكبيرة والصغيرة، لذا سيتم العثور فقط على الأسطر التي تطابق Ubuntu تماماً.
⚙️ [الخيارات الرئيسية]
-i : يتجاهل حالة الأحرف الكبيرة والصغيرة ويبحث عن الأنماط المطابقة.-v : يعكس البحث لعرض الأسطر التي لا تطابق النمط المحدد فقط.-n : يعرض أرقام الأسطر التي تحتوي على المحتوى المطابق.-c : يحسب ويعرض العدد الإجمالي للأسطر المطابقة فقط.-r : يبحث تكرارياً داخل جميع الملفات في الأدلة الفرعية.-l : يسرد فقط أسماء الملفات التي تحتوي على المحتوى المطابق.-E : يبحث باستخدام التعبيرات النمطية الموسعة (ERE).

عند إضافة الخيار -i، يتم البحث دون التمييز بين الأحرف الكبيرة والصغيرة.
وبالتالي، يتم عرض كل من الأسطر التي تحتوي على Ubuntu التي تبدأ بحرف كبير و ubuntu التي تبدأ بحرف صغير.

عرض أرقام الأسطر (-n) والبحث المعكوس عن الأسطر غير المطابقة (-v)
نقوم بتشغيل الأمر echo -e 'INFO: Service started\nERROR: Connection timeout\nINFO: Request handled\nERROR: Disk full' > app.log لإنشاء بيانات سجلات افتراضية لاستخدامها في تمرين تحليل السجلات.

عند استخدام الخيار -n، يتم عرض أرقام الأسطر المطابقة لنمط البحث بجانب المحتوى.
يتم عرض أرقام الأسطر والمحتوى الذي يتضمن النص ERROR معاً، مما يتيح تحديد موقع حدوث المشكلة بسرعة.

عند استخدام الخيار -v، يتم عكس المخرجات لعرض الأسطر التي لا تطابق النمط المحدد فقط.
يتيح ذلك استبعاد بنود INFO التي تشير إلى الحالة الطبيعية وتصفية الأسطر المتعلقة بالأخطاء فقط للتحقق منها.

البحث التكراري في الأدلة الفرعية (-r) وعرض أسماء الملفات فقط (-l)
نقوم بتشغيل الأمر mkdir -p ~/grep_demo/logs/archive لإنشاء بنية دليل فرعي للأرشفة من أجل تمرين البحث التكراري.

نقوم بتشغيل الأمر echo 'database error' > ~/grep_demo/logs/db.log لإنشاء ملف سجل أخطاء قاعدة البيانات لاستخدامه في اختبار البحث.

نقوم بتشغيل الأمر echo 'cache hit' > ~/grep_demo/logs/cache.log لإنشاء ملف سجل ذاكرة التخزين المؤقت للتحقق من السجلات العادية.

نقوم بتشغيل الأمر echo 'fatal error occurred' > ~/grep_demo/logs/archive/old.log لإنشاء ملف سجل أخطاء قديم لاختبار استكشاف الأدلة الفرعية.

عند استخدام الخيار -r مع الخيار -n معاً، يتم البحث تكرارياً داخل الأدلة الفرعية مع عرض أرقام الأسطر المطابقة.
يتم عرض مسارات الملفات وأرقام الأسطر ومحتوياتها التي تتضمن النص error في جميع الملفات الموجودة داخل دليل logs والدليل الفرعي archive.

عند إضافة الخيار -l وتشغيل الأمر بالصيغة -rl، يتم عرض قائمة بمسارات الملفات التي تحتوي على هذا النمط فقط بدلاً من عرض المحتوى المطابق.
يُعد هذا مفيداً للغاية لتصفية وتحديد الملفات التي حدث فيها error بسرعة من بين عدد لا يحصى من ملفات السجلات.

فحص سياق نتائج البحث (-A, -B, -C) والتمييز بالألوان
نقوم بتشغيل الأمر echo -e 'Step 1: Init\nStep 2: Load Config\nStep 3: Critical Failure\nStep 4: Cleanup\nStep 5: Exit' > process.log لإنشاء ملف سجل تجريبي للتدرب على التحقق من تقدم مراحل العمليات وسياق الأخطاء.

عند استخدام الخيارين -B و -A، يتم عرض عدد محدد من الأسطر السابقة (Before) واللاحقة (After) بناءً على السطر المطابق.
مع خيار --color=always الذي يبرز عبارة Critical Failure المطابقة بالألوان، يمكنك فحص السطر السابق وسطرين لاحقين لفهم تسلسل وسير العمليات قبل حدوث الخطأ وبعده.

عند استخدام الخيار -C، يتم عرض نفس العدد من الأسطر في كلا الاتجاهين السابق واللاحق (Context) في وقت واحد بناءً على السطر المطابق.
يتم عرض سطر واحد قبل وسطر واحد بعد السطر الذي يحتوي على Critical Failure بشكل متزامن، مما يتيح التحقق من السياق الأساسي بإيجاز أكبر.

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