Skip to main content

مثال على استخدامات Linux grep Command

Linux Tutorial for Beginners: Introduction to Linux Operating System (أبريل 2025)

Linux Tutorial for Beginners: Introduction to Linux Operating System (أبريل 2025)
Anonim

يتم استخدام الأمر grep Linux كطريقة لتصفية الإدخال. يرمز GREP إلى "طابعة التعبير العادية العالمية" ومن ثم لاستخدامها بشكل فعال ، يجب أن يكون لديك بعض المعرفة حول التعبيرات العادية.

في هذه المقالة ، ستتعلم عددًا من الأمثلة التي ستساعدك على فهم أمر grep.

01 من 09

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

تخيل أن لديك ملفًا نصيًا يسمى الكتب يحتوي على عناوين كتب الأطفال التالية:

  • روبن هود
  • القليل ركوب هود الأحمر
  • بيتر بان
  • المعتدل والدببة الثلاثة
  • سنووايت و الأقزام السبعة
  • Pinnochio
  • القطة في القبعة
  • الخنازير الثلاثة الصغيرة
  • و Gruffalo
  • تشارلي ومصنع الشوكولاتة

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

grep الكتب

سيتم إرجاع النتائج التالية:

  • المعتدل والدببة الثلاثة
  • سنووايت و الأقزام السبعة
  • القطة في القبعة
  • الخنازير الثلاثة الصغيرة
  • و Gruffalo
  • تشارلي ومصنع الشوكولاتة

في كل حالة ، سيتم تمييز الكلمة "The".

يعتبر البحث حساسًا لحالة الأحرف ، لذلك إذا كان أحد العناوين يحمل "بدلاً من" "ثم" ، فلن تتم إعادته.

لتجاهل الحالة ، يمكنك إضافة المفتاح التالي:

grep الكتب - حجرة-حالة

يمكنك أيضًا استخدام -i switch على النحو التالي:

grep -i الكتب

مواصلة القراءة أدناه

02 من 09

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

الأمر grep قوي جدا. يمكنك استخدام العديد من أساليب مطابقة الأنماط لتصفية النتائج.

في هذا المثال ، سأوضح لك كيفية البحث عن سلسلة في ملف باستخدام أحرف البدل.

تخيل أن لديك ملفًا باسم الأماكن مع أسماء الأماكن الاسكتلندية التالية:

أبردينأبريستوايثaberlourINVERURIEإينفيرنيسنيوبورغالغزلان الجديدةغالواي الجديدغلاسكوأدنبرة

إذا كنت ترغب في العثور على جميع الأماكن مع inver في الاسم استخدم بناء الجملة التالي:

grep inver * places

تقف العلامة النجمية (*) على 0 أو أكثر. لذلك إذا كان لديك مكان يسمى inver أو مكان يسمى Inverness ، فسيتم إرجاع كليهما.

آخر حرف بدل يمكنك استخدامه هو الفترة (.). يمكنك استخدام هذا لمطابقة حرف واحد.

grep inver.r places

سيجد الأمر أعلاه أماكن تسمى inverurie و inverary ولكن لن يجد invereerie لأنه لا يمكن أن يكون هناك سوى حرف بدل واحد بين الحرفين r كما هو محدد بواسطة الفترة المفردة.

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

على سبيل المثال ، انظر إلى قائمة أسماء النطاقات هذه

  • linux.about.com
  • pcsupport.about.com
  • mp3.about.com
  • minecraft.about.com
  • androidgames.about.com
  • netforbeginners.about.com
  • everydaylinuxuser.com
  • google.co.uk
  • google.au
  • direct.gov.uk

للعثور على كل ما يتعلق بـ. com ، يمكنك البحث باستخدام البنية التالية:

grep * about * domainnames

سيسقط الأمر السابق إذا كانت القائمة تحتوي على الاسم التالي:

  • everydaylinuxuser.com/about.html

لذلك ، يمكنك تجربة بناء الجملة التالي:

grep * about.com domainnames

سيعمل هذا على ما يرام ما لم يكن هناك مجال بالاسم التالي:

aboutycom.com

للبحث حقًا عن عبارة about.com ، ستحتاج إلى الهروب من النقطة على النحو التالي:

grep * حول .com domainnames

إن البدل الأخير الذي سيظهر لك هو علامة الاستفهام التي تشير إلى صفر أو حرف واحد.

فمثلا:

grep؟ ber placenames

سيعود الأمر أعلاه aberdeen ، aberystwyth أو حتى berwick.

مواصلة القراءة أدناه

03 من 09

البحث عن سلاسل في بداية ونهاية الخط باستخدام grep

يسمح لك قيراط (^) ورمز الدولار ($) بالبحث عن الأنماط في بداية ونهاية الأسطر.

تخيل أن لديك ملفًا باسم كرة القدم يحمل أسماء الفرق التالية:

  • بلاكبول
  • ليفربول
  • مدينة مانشستر
  • مدينة ليستر
  • مانشستر يونايتد
  • نيوكاسل المتحدة
  • FC يونايتد اوف مانشستر

إذا أردت العثور على جميع الفرق التي بدأت مع مانشستر ، فستستخدم الصيغة التالية:

grep ^ فرق مانشستر

سيعود الأمر أعلاه إلى مانشستر سيتي ومانشستر يونايتد ولكن ليس مانشستر يونايتد.

بدلاً من ذلك ، يمكنك العثور على جميع الفرق المنتهية بـ United باستخدام الصيغة التالية:

grep فرق دولار

سيعود الأمر السابق إلى مانشستر يونايتد ونيوكاسل يونايتد ولكن ليس مانشستر يونايتد.

04 من 09

حساب عدد المباريات باستخدام grep

إذا كنت لا ترغب في إرجاع الخطوط الفعلية التي تطابق نمط باستخدام grep ولكنك تريد فقط معرفة عدد هناك يمكنك استخدام بناء الجملة التالي:

grep - ج نمط المدخلات

إذا تمت مطابقة النمط مرتين ، فسيتم إرجاع الرقم 2.

مواصلة القراءة أدناه

05 من 09

العثور على جميع الشروط التي لا تتطابق باستخدام grep

تخيل أن لديك قائمة بأسماء الأماكن مع البلدان المدرجة على النحو التالي:

  • ابردين اسكتلندا
  • غلاسكو اسكتلندا
  • ليفربول إنجلترا
  • خليج كولوين
  • لندن، إنجلترا

ربما لاحظت أن خليج كولوين لا يوجد بلد مرتبط به.

للبحث عن جميع الأماكن في بلد ما ، يمكنك استخدام بناء الجملة التالي:

grep land $ places

سوف تكون نتائج إرجاع جميع الأماكن باستثناء خليج كولوين.

من الواضح أن هذا يعمل فقط للأماكن التي تنتهي في الأرض (بالكاد العلمية).

يمكنك عكس التحديد باستخدام الصيغة التالية:

grep -v land $ places

هذا سيجد كل الأماكن التي لم تنته بالأرض.

06 من 09

كيفية البحث عن الخطوط الفارغة في الملفات باستخدام grep

تخيل أن لديك ملف إدخال يتم استخدامه بواسطة تطبيق جهة خارجية يتوقف عن قراءة الملف عندما يجد سطرًا فارغًا كما يلي:

  • ابردين اسكوتلاند
  • إينفيرنيس اسكتلندا
  • ليفربول إنجلترا
  • كولوين خليج ويلز

عندما يحصل التطبيق على الخط بعد ليفربول سيتوقف عن القراءة بمعنى أن يكون غاب خليج كولوين بالكامل.

يمكنك استخدام grep للبحث عن أسطر فارغة باستخدام بناء الجملة التالي:

grep ^ $ places

للأسف ، هذا ليس مفيدًا على وجه الخصوص نظرًا لأنه يعرض السطور الفارغة فقط.

يمكنك بالطبع الحصول على عدد من الخطوط الفارغة كتحقق لمعرفة ما إذا كان الملف صالحًا على النحو التالي:

grep -c ^ $ places

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

grep -n ^ $ places

مواصلة القراءة أدناه

07 من 09

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

باستخدام grep ، يمكنك تحديد أي أسطر في ملف تحتوي على أحرف كبيرة باستخدام بناء الجملة التالي:

grep 'A-Z' filename

تتيح الأقواس المربعة تحديد نطاق الأحرف. في المثال أعلاه ، يتطابق مع أي حرف بين A و Z.

لذلك ، لمطابقة الأحرف الصغيرة ، يمكنك استخدام بناء الجملة التالي:

grep 'a-z' filename

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

grep 'a-zA-Z' filename

يمكنك أن تفعل الشيء نفسه مع الأرقام على النحو التالي:

grep '0-9' filename 08 من 09

أبحث عن أنماط تكرار باستخدام grep

يمكنك استخدام الأقواس المتعرجة {} للبحث عن نمط متكرر.

تخيل أن لديك ملفًا به أرقام هواتف كما يلي:

  • 055-1234
  • 055-4567
  • 555-1545
  • 444-0167
  • 444-0854
  • 4549-2234
  • x44-1234

أنت تعلم أن الجزء الأول من الرقم يجب أن يتكون من ثلاثة أرقام وتريد أن تجد الخطوط التي لا تطابق هذا النمط.

من المثال السابق ، تعلم أن 0-9 تقوم بإرجاع كافة الأرقام في ملف.

في هذه الحالة ، نريد أن تبدأ الأسطر التي تبدأ بثلاثة أرقام متبوعة بواصلة (-). يمكنك القيام بذلك باستخدام الصيغة التالية:

grep "^ 0-9 0-9 0-9 -" الأرقام

وكما نعرف من الأمثلة السابقة ، فإن قيراط (^) يعني أن الخط يجب أن يبدأ بالنمط التالي.

ستقوم 0-9 بالبحث عن أي رقم بين 0 و 9. بما أنه يتم تضمينه ثلاث مرات فإنه يتطابق مع 3 أرقام. وأخيراً هناك واصلة للدلالة على أن الواصلة يجب أن تنجح في الأرقام الثلاثة.

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

grep "^ 0-9 {3 } -" الأرقام

تفلت الشرطة من {القوس بحيث يعمل كجزء من التعبير المعتاد ، ولكن ما يقوله هذا هو 0-9 {3} وهو ما يعني أي رقم بين 0 و 9 ثلاث مرات.

يمكن استخدام الأقواس المتعرجة كما يلي:

{5,10}{5,}

يعني الرقم {5،10} أن الحرف الذي يتم البحث عنه يجب أن يتكرر 5 مرات على الأقل ولكن لا يزيد عن 10 بينما يعني {5}} أنه يجب تكرار الحرف 5 مرات على الأقل ولكن يمكن أن يكون أكثر من ذلك.

مواصلة القراءة أدناه

09 من 09

استخدام الإخراج من أوامر أخرى باستخدام grep

حتى الآن نظرنا إلى تطابق النمط داخل الملفات الفردية ولكن grep يمكن استخدام الإخراج من الأوامر الأخرى كمدخل لمطابقة النمط.

مثال عظيم على ذلك هو استخدام الأمر ps الذي يسرد العمليات النشطة.

على سبيل المثال ، قم بتشغيل الأمر التالي:

ص

سيتم عرض جميع العمليات الجارية على نظامك.

يمكنك استخدام grep للبحث عن عملية قيد التشغيل على النحو التالي:

ps -ef | grep فايرفوكس

ملخص

الأمر grep هو أمر أساسي في Linux وهو أمر يستحق التعلم لأنه سيجعل حياتك أسهل بكثير عند البحث عن الملفات والعمليات عند استخدام الجهاز.