كيفية استبعاد كلمة باستخدام grep

جدول المحتويات:

Anonim

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

من الواضح أنك سترغب في الحصول على بعض الخبرة في سطر الأوامر والتعرض لـ grep لتجد هذا مفيدًا. إذا كنت تريد المتابعة ، يمكنك فتح تطبيق Terminal وتجربته بنفسك. نظرًا لأن grep أداة مساعدة حيادية لنظام التشغيل ، يمكنك استخدام خدعة الاستبعاد في نظام التشغيل Mac OS أو Linux أو unix أو أي شيء آخر لديك يستخدم grep.

كيفية استبعاد كلمة واحدة باستخدام grep

أبسط طريقة لاستبعاد الأسطر التي تحتوي على سلسلة أو مطابقة بناء جملة هي استخدام grep والعلامة -v.

على سبيل المثال ، لنفترض أننا نستخدم cat لطباعة ملف في سطر الأوامر ، لكننا نريد استبعاد جميع الأسطر التي تتضمن المصطلح "ThisWord" ، ثم سيبدو بناء الجملة على النحو التالي:

"

cat example.txt | grep -v ThisWord "

سيكون الإخراج هو الملف النصي example.txt ولكن باستثناء أي سطر يحتوي على سلسلة تتطابق مع "ThisWord".

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

"

grep -v ThisWord> "

استخدم أيهما يعمل بشكل أفضل لسير العمل الخاص بك.

كيفية استبعاد سلاسل أو كلمات متعددة باستخدام grep

الآن بعد أن عرفت كيفية استبعاد التطابقات لكلمة واحدة ، فإن السؤال الواضح التالي هو حول استبعاد كلمات متعددة باستخدام grep. هذا بنفس القدر من البساطة ، وهناك عدة طرق مختلفة لتحقيق ذلك باستخدام العلم -v بالإضافة إلى العلم -e.

أولاً ، دعنا نأخذ المثال أعلاه لاستخدام قطة على ملف ممر إلى grep ، واستبعد أي أسطر تطابق كلمتين ؛ "Word1" و "Word2" ، سيبدو هذا كما يلي:

"

cat example.txt | grep -v -e Word1 -e Word2 "

سيتم استبعاد أي سطور تحتوي على "Word1" أو "Word2" من النتائج المطبوعة.

يمكنك أيضًا استخدام grep مباشرة على الملفات كما في السابق:

"

grep -v -e Word1 -e Word2 example.txt "

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

"

grep -Ev word1 | word2 example.txt "

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

رائع ، أرني مثالاً مفيدًا لاستبعاد البيانات باستخدام grep!

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

في المثال هنا سنطبع محفوظات الأوامر لمطابقات السلاسل الافتراضية ، لكننا نستبعد أي شيء مطابق له علاقة بـ iTunes كما هو محدد بواسطة “com.apple.itunes”:

"

history | إعدادات grep الافتراضية اكتب | grep -v -e com.apple.itunes "

لذا إذا كنت تتابعها ، فسيؤدي ذلك إلى الإبلاغ عن جميع عمليات التنفيذ التاريخية لأمر "كتابة الإعدادات الافتراضية" ، مع استبعاد أي شيء يتعلق بتطبيق iTunes. هاه جميل؟

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

كيفية استبعاد كلمة باستخدام grep