أمر Grep في Linux

Grep Command Linux



يعد أمر Grep (طباعة التعبير العادي العالمي) هو الأداة المساعدة لسطر أوامر Linux الأكثر فعالية والأكثر استخدامًا. باستخدام Grep ، يمكنك البحث عن معلومات مفيدة عن طريق تحديد معايير البحث. يبحث عن نمط تعبير معين في ملف محدد. عندما يعثر على تطابق ، فإنه يطبع جميع أسطر الملف التي تطابق النمط المحدد. يكون مفيدًا عندما تضطر إلى التصفية من خلال ملفات السجل الكبيرة.

في هذه المقالة ، سنشرح استخدام الأداة grep بأمثلة مختلفة. سنستخدم دبيان 10 لشرح الأوامر والأساليب المذكورة في هذه المقالة.







تثبيت Grep

يأتي Grep مثبتًا في معظم توزيعات Linux. ومع ذلك ، في حالة عدم وجوده في نظامك ، يمكنك تثبيته باستخدام الطريقة التالية في Terminal:



$سودو تثبيت apt-get سيطرة

باستخدام Grep

هنا الصيغة الأساسية لأمر grep. يبدأ بـ grep متبوعًا ببعض الخيارات ومعايير البحث ثم ينتهي باسم الملف.



$سيطرة [والخيارات]نمط[ملف...]

ابحث عن الملفات

للبحث عن اسم ملف في دليل يحتوي على سلسلة معينة فيه ، يمكنك استخدام grep بالطريقة التالية:





$ls -ال | سيطرة -أناسلسلة

على سبيل المثال ، للبحث عن اسم ملف يحتوي على سلسلة اختبار ، سيكون الأمر:

$ls-ال| سيطرة-أنااختبار

يسرد هذا الأمر جميع الملفات التي تحتوي على السلسلة اختبار .



ابحث عن سلسلة في ملف

للبحث عن سلسلة في ملف معين ، يمكنك استخدام صيغة الأمر التالية:

$سيطرةاسم ملف سلسلة

على سبيل المثال ، للبحث عن سلسلة اختبار في ملف اسمه ملف الاختبار 1 و لقد استخدمنا الأمر التالي :

$سيطرةاختبار الموظف

الناتج أعلاه أعاد الجملة من ملف الاختبار 1 الذي يحتوي على السلسلة الموظف .

ابحث عن سلسلة في ملفات متعددة

للبحث عن سلسلة في ملفات متعددة ، يمكنك استخدام صيغة الأمر التالية:

$سيطرةسلسلة filename1 filename2

على سبيل المثال ، للبحث عن موظف سلسلة في الملفين testfile1 و testfile2 ، استخدمنا الأمر التالي:

$سيطرةاختبار الموظف testfile1 testfile2

سيسرد الأمر أعلاه جميع الأسطر التي تحتوي على موظف السلسلة من كلا الملفين testfile1 و testfile2.

يمكنك أيضًا استخدام حرف بدل إذا كانت جميع أسماء الملفات تبدأ بنفس النص.

$سيطرةاسم ملف سلسلة*

مثل ، إذا أخذنا المثال أعلاه الذي كانت فيه أسماء الملفات الخاصة بنا testfile1 و testfile2 ، سيكون الأمر:

$سيطرةملف testfile الموظف*

ابحث عن سلسلة في ملف بتجاهل حالة السلسلة

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

يمكنك إخبار grep بتجاهل حالة سلسلة البحث باستخدام علامة –i بعد grep كما يلي:

$سيطرة- اسم ملف السلسلة

باستخدام علامة –i ، سيقوم الأمر بإجراء بحث غير حساس لحالة الأحرف وسيعيد جميع الأسطر التي تحتوي على السلسلة الموظف في ذلك دون مراعاة الأحرف الكبيرة أو الصغيرة.

ابحث باستخدام التعبير النمطي

إذا تم استخدامه بشكل صحيح ، فإن التعبير النمطي يعد ميزة فعالة جدًا في grep. باستخدام الأمر Grep ، يمكنك تعريف تعبير عادي بكلمة أساسية بداية ونهاية. من خلال القيام بذلك ، لن تحتاج إلى كتابة السطر بالكامل باستخدام الأمر grep. يمكن استخدام الصيغة التالية لهذا الغرض.

$سيطرةبداية الكلمة.*endKeyword اسم الملف

على سبيل المثال ، للبحث عن سطر في ملف يسمى testfile1 يبدأ بالسلسلة وينتهي ببيانات السلسلة ، استخدمنا الأمر التالي:

$سيطرةهذه.*اختبار البيانات

سيطبع السطر بالكامل من ملف ملف الاختبار 1 يحتوي على التعبير (بدء الكلمة الرئيسية هذه وبيانات الكلمة الأساسية النهائية).

اطبع عددًا معينًا من الأسطر بعد / قبل سلسلة البحث

يمكنك أيضًا عرض عدد محدد من الأسطر في ملف قبل / بعد تطابق سلسلة مع السلسلة المتطابقة نفسها. يمكن استخدام الصيغة التالية لهذا الغرض:

$سيطرة -إلى <ن>اسم ملف سلسلة

سيعرض عدد N من الأسطر بعد مطابقة السلسلة في الملف المحدد بما في ذلك السلسلة المتطابقة.

على سبيل المثال ، هذا هو نموذج الملف المسمى ملف الاختبار 2 .

سيخرج الأمر التالي السطر المتطابق الذي يحتوي على السلسلة الموظف ، مع سطرين بعده.

$سيطرة-إلى2–i اختبار الموظف ملف 2

وبالمثل ، لعرض عدد N من الأسطر قبل السلسلة المتطابقة في ملف معين ، استخدم الصيغة التالية:

$سيطرة <ن>اسم ملف سلسلة

لعرض عدد N من الأسطر حول السلسلة في ملف معين ، استخدم الصيغة التالية:

$سيطرة <ن>اسم ملف سلسلة

ابراز البحث

Grep افتراضيًا يطبع الأسطر المتطابقة لكنه لا يظهر أي جزء من السطر مطابق. إذا كنت تستخدم الخيار –color مع grep ، فسيظهر مكان ظهور سلاسل المعالجة في ملفك. يستخدم Grep افتراضيًا اللون الأحمر للتمييز.

يمكن استخدام الصيغة التالية لهذا الغرض:

$سيطرةاسم ملف سلسلة--لون

حساب عدد المطابقات

إذا كنت تريد حساب عدد المرات التي تظهر فيها كلمة معينة في ملف معين ، فيمكنك استخدام الخيار grep with –c. تقوم بإرجاع عدد المطابقات فقط بدلاً من المطابقات نفسها. يمكن استخدام الصيغة التالية لهذا الغرض:

$سيطرة–c سلسلة اسم الملف

هذا هو نموذج الملف الخاص بنا يبدو كما يلي:

فيما يلي مثال على أمر أعاد عدد مرات الكلمة ملف ظهر في ملف اسمه ملف الاختبار 3 .

البحث المقلوب

في بعض الأحيان ، تريد إجراء بحث عكسي يعرض جميع الأسطر باستثناء تلك المطابقة للإدخال. للقيام بذلك ، ما عليك سوى استخدام علامة –v متبوعة بـ grep:

$سيطرة–v اسم ملف سلسلة

على سبيل المثال ، لعرض كل الأسطر في ملف ملف الاختبار 3 التي لا تحتوي على كلمة حساب فيها ، استخدمنا الأمر التالي:

$سيطرة–v حساب testfile3

استخدام Grep مع أوامر أخرى

يمكن أيضًا استخدام Grep لتصفية النتيجة المطلوبة من إخراج الأوامر المختلفة. على سبيل المثال ، من apt - قائمة مثبتة أمر الإخراج ، إذا كنت تريد البحث عن الحزم التي تم تثبيتها تلقائيًا فقط ، يمكنك تصفية النتيجة باستخدام grep على النحو التالي:

$ملائم--المثبتةقائمة| سيطرةتلقائي

وبالمثل ، يوفر lscpu معلومات مفصلة حول وحدة المعالجة المركزية. إذا كنت مهتمًا فقط بالمعلومات المتعلقة بهيكل وحدة المعالجة المركزية ، فيمكنك تصفيتها باستخدام الأمر التالي:

$lscpu| سيطرةهندسة معمارية

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