كيفية استخدام Grep Command في Linux

فهم أمر grep بأمثلة عملية لتصفية محتوى الملف وعرضه بسهولة

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

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

إنه يقوم بعمل ممتاز من خلال تصفية محتوى الملف مما يجعل مهمتنا أسهل للبحث في محتوى معين في ملفات فردية أو متعددة في وقت واحد.

في هذه المقالة ، دعونا نستعرض أداء grep الأمر مع بعض الأمثلة العملية بالتفصيل.

الخيارات المتاحة مع grep يأمر

هذه بعض الخيارات الأساسية التي ستستخدمها بشكل متكرر مع grep يأمر.

خياروصف
-أنالبحث حساس لحالة الأحرف
-rللبحث بشكل متكرر عن جميع الملفات في الدليل المحدد والأدلة الفرعية الخاصة به
لعرض العدد الإجمالي لمرات ظهور سلسلة
-الخامسلعرض الخطوط غير المطابقة
-wتصفية لتلك الكلمة المعينة المستخدمة بشكل منفصل

باستخدام grep يأمر

grep عادة ما يستخدم الأمر مع الأنبوب (|) خدمة. يمكن تنفيذه باستخدام shell pipe عندما تريد استخدامه مع بعض أوامر Linux الأخرى. برغم من، grep يمكن أيضًا استخدامها بشكل فردي بدون الأنبوب (|) خدمة.

دعونا نرى في بعض التركيبات الأساسية لملف grep الأمر مع الأداة المساعدة للأنابيب وبدونها.

اسمح لي أولاً أن أعرض لك نموذج الملف النصي الذي سأستخدمه لتوضيح ملف grep يأمر.

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

grep تستخدم مع الأنابيب (|)خدمة

grep يمكن تنفيذ الأمر جنبًا إلى جنب مع أوامر Linux الأخرى باستخدام أنابيب shell. مثل ، باستخدام قط لعرض محتوى الملف ولكن في نفس الوقت يتم توصيل الإخراج باستخدام امتداد الملف grep الأمر لعرض المحتوى الذي ترغب في رؤيته فقط. سيكون هذا أكثر وضوحًا عندما نراجع المثال.

بناء الجملة:

[الأمر] | grep [سلسلة]

مثال:

عينة القط. txt | الهيئة التشريعية grep

هنا ، لقد استخدمت ملف قط لعرض بعض الأسطر من ملف "sample.txt". يتم عرض هذه الأسطر فقط التي تحتوي على كلمة "هيئة تشريعية" فيها وتتجاهل بقية السطور.

انتاج |:

gaurav @ ubuntu: ~ / workspace $ cat sample.txt | المجلس التشريعي grep الهند يقف على ثلاث ركائز تشريعية وتنفيذية وقضائية. gaurav @ ubuntu: ~ / workspace $

grep تستخدم بدون أنبوب (|)خدمة

grep يمكن استخدامها مباشرة كأمر فردي دون استخدام الأنبوب ( | ) خدمة.

بناء الجملة:

grep [string_to_be_searched] [اسم الملف]

مثال:

grep India sample.txt

انتاج |:

الهند بلد جميل محب للسلام. الهند تهتم بالناس لأنها مورد

وبالتالي ، فقد استخدمت ملف grep أمر مباشرة لتصفية الأسطر التي تحتوي على السلسلة "India" من الملف النصي "sample.txt".

بحث غير حساس لحالة الأحرف باستخدام grep يأمر

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

دعونا نرى هذا من خلال مثال.

grep peace sample.txt

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

لتجنب هذا الغموض ، يمكنك ببساطة استخدام ملف -أنا الخيار الذي يقول حرفيا ملف grep يأمر "انسَ الحالة التي وضعت فيها السلسلة ، وابحث فقط عن جميع الأنماط المتطابقة في الملف."

بناء الجملة:

grep -i [سلسلة] [اسم ملف]

مثال:

grep -i peace sample.txt

انتاج |:

الهند بلد جميل من محبي السلام. الهند بلد جميل محب للسلام.

يتم عرض جميع الأسطر المطابقة بغض النظر عن الحالة التي تكون فيها السلسلة المطابقة.

البحث التكراري باستخدام grep يأمر

ال -r الخيار سيبحث عن جميع الملفات في الدليل وجميع الأدلة الفرعية التي تتطابق مع نمط السلسلة الذي قدمه المستخدم في الأمر.

بناء الجملة:

grep -i -r [سلسلة] [file_path]

مثال:

grep -i -r tomcat / home / gaurav / workspace

السلسلة هنا هي "tomcat" وسيتم البحث عنها في مساحة عمل الدليل. سيتم أيضًا فحص جميع الأدلة الفرعية والملفات الموجودة في دليل "مساحة العمل" لمطابقة نمط السلسلة المقدم.

انتاج |:

./context_log.policy:// catalina.policy - أذونات نهج الأمان لـ Tomcat 7 ./context_log.policy:// ملاحظة: إذا كان tomcat-juli.jar موجودًا في $ {catalina.base} وليس في $ {catalina.home }، ./context_log.policy:// منحة codeBase "الملف: $ {catalina.base} /bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "الملف: $ {catalina.home } /bin/tomcat-juli.jar "{./context_log.policy: إذن java.lang.RuntimePermission" accessClassInPackage.org.apache.tomcat.websocket.server "؛ ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - مشترك غير Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled = true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000. /server.xml: pathname = "conf / tomcat-users.xml" /> ./server.xml: 

ملاحظة: أثناء استخدام ملف -r الخيار مع grep الأمر نحتاج إلى توفير مسار الملف وليس اسم الملف

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

في كثير من الأحيان تكون الحالة أنك ستبحث عن كلمة واحدة ولكنك ستنتهي في نهاية المطاف بتعبئة أسطر المطابقة التي تحتوي على الكلمة المطابقة ولكن ليس ككلمة فردية. قد ترى الأسطر التي تحتوي على بعض الكلمات التي يكون الجزء الفرعي هو السلسلة التي أدخلتها.

في حيرة من أمرك؟ لا تقلق ، من الأسهل بكثير فهمه بمجرد الحصول على المثال.

مثال:

هنا ، أريد البحث عن كلمة فردية "عربة" وعرض جميع الأسطر المطابقة لهذه الكلمة في الملف "sample.txt".

grep -i عربة عينة. txt

انتاج |:

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

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

يمكنك استعمال ال -w الخيار مع grep الأمر لحل هذا الغموض.

بناء الجملة:

grep -i -w [سلسلة] [اسم ملف]

مثال:

grep -i -w cart sample.txt

انتاج |:

يعتبر استخدام عربة الثيران مشهدًا مألوفًا في القرية للأعمال الزراعية. اختفت العربة عندما تركها الصبي سائبة. 

الآن ، عندما تستخدم -ث الخيار مع grep ستحصل فقط على الأسطر التي تستخدم فيها كلمة "عربة" ككل.

البحث المقلوب باستخدام grep يأمر

grep يمكن أيضًا استخدام الأمر بطريقة عكسية. يمكننا استخدام grep الأمر بشكل معاكس عن طريق إخفاء الأسطر المطابقة وعرض الأسطر التي لم يتم العثور على التطابق فيها فقط. يمكنك القيام بذلك باستخدام ملف -الخامس الخيار مع grep يأمر.

بناء الجملة:

grep -i -v [سلسلة] [اسم ملف]

مثال:

grep -i -v Resource sample.txt

انتاج |:

الهند بلد جميل من محبي السلام. تقف الهند على ثلاث ركائز تشريعية وتنفيذية وقضائية. الهند بلد جميل محب للسلام. الإحداثيات الديكارتية أهمية جميع الإحداثيات الديكارتية. يعتبر استخدام عربة الثيران مشهدًا مألوفًا في القرية للأعمال الزراعية. هذه هي نهاية ملف العينة.

في الإخراج ، يتم عرض جميع الأسطر الأخرى بخلاف السطر الذي يحتوي على كلمة "مورد".

عد تكرارات سلسلة مطابقة

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

بناء الجملة:

grep -i -c [سلسلة] [اسم ملف]

مثال:

grep -i -c india sample.txt

انتاج |:

gaurav @ ubuntu: ~ / workspace $ grep -i -c india sample.txt 4 gaurav @ ubuntu: ~ / workspace $

هنا ، الناتج هو رقم وهو عدد تكرارات كلمة "India" في ملف sample.txt.

ملاحظة: لقد استخدمت ملف -أنا الخيار في كل مثال ليكون آمنًا مع مشكلة حساسية حالة الأحرف. إذا كنت متأكدًا من حالة الكلمة التي تبحث عنها ، فيمكنك حذف ملف -أنا اختيار.

استنتاج

لقد تعلمنا الاستخدامات الأساسية لـ grep أمر على أنظمة Linux في هذا البرنامج التعليمي. تعلمنا أيضًا عرض محتوى متنوع يناسب متطلباتنا على أفضل وجه وعدم ازدحام المحطة بأحمال من الخطوط. grep سيكون الأمر بالتأكيد موفرًا للوقت إذا تم استخدامه لمسح مجموعات البيانات الكبيرة.