![]() |
كيفية اليحث باستخدام grep لعرض المطلوب بسم الله الرحمن الرحيم الأداة grep: grep هي أداة تستخدم للبحث في الملفات النصية أو المعطيات من برنامج أخر في نظام لينكس و أظهار الأسطر الموافقة للتعبير (Regular Expression) إلى الشاشة أو حفظها في ملف نصي . الاستخدام الأساسي : البحث عن كلمة في ملف نصي : رمز PHP: grep "localhost" /etc/host سيقوم هذا الأمر بالبحث عن الأسطر المحتوية على الكلمة "localhost" في الملف "etc/host/" . البحث في معطيات برنامج : رمز PHP: ls -l | grep "root" بواسطة الحرف ( | ) الذي يقوم بتحويل معطيات البرنامج ls إلى البرنامج grep الذي يبحث عن الكلمة root في المعطيات . التعبيرات المنتظمة (Regular Expressions) : البحث عن كلمة في بداية السطر : رمز PHP: grep "^google" /etc/host باستخدام الإشارة ^ سيظهر البرنامج الأسطر التي تبدأ بالكلمة google فقط . البحث عن كلمة في نهاية السطر : رمز PHP: grep "root$" /etc/passwd باستخدام الإشارة $ سيطبع البرنامج الأسطر التي تنتهي بالكلمة root . أظهار عدد الأسطر الفارغة في الملف : رمز PHP: grep -c "^$" /etc/passwd بدمج الإشارتين ^$ سيبحث البرنامج عن الأسطر الفارغة ويطبع عدد الأسطر الفارغة وفي حالة كتابة الأمر كالتالي $root^ بدون الأمر c- سيطبع البرنامج الأسطر المحتوية على الكلمة root فقط . استخدام أشارة النقطة ( . ) في البحث : رمز PHP: grep "hell." /home/user/example.txt يقوم البرنامج باستبدال النقطة بحرف واحد و البحث عن الكلمات المتوافقة في هذه الحالة سيبحث البرنامج عن الكلمات(hello,hell1,hellg,....) . استخدام أشارة النجمة ( * ) في البحث : رمز PHP: ls -l |grep "*.txt" تختلف هذه الإشارة عن سابقتها في أنها لا تحدد عدد الأحرف ,ففي الأمر السابق قمنا بتحويل معطيات الأمر ls إلى البرنامج وباستخدام ( * ) سيطبع البرنامج الملفات المنتهية بالامتداد txt كالتالي (a.txt, abc.txt , ab1.txt , aaa111.txt,.....). استخدام أشارة النجمة ( +\ ) في البحث : رمز PHP: grep "hi \+hello" input.txt ستعرض هذه الإشارة الأسطر التي تحتوي على الكلمتين hi و hello و يفصل بينها حرف مسافة واحد على الأقل أو أكثر , و ستكون المعطيات كالتالي : hi hello hi hello hi hello و تستطيع وضع أي حرف بدل محرف المسافة كالتالي : رمز PHP: grep "hih\+hello" input.txt .(hihhello,hihhhhello,....) و ستكون النتائج كالتالي البحث عن النصوص المحتوية على الإشارات الخاصة بالبحث : رمز PHP: grep 127.1.1.1 /etc/hosts لكي تستطيع البحث عن الكلمات المحتوية على الإشارات الخاصة بالبحث (*,.) يجب أن تسبقها بالإشارة (\), كما في الأمر السابق حيث سنبحث عن عنوان الأي بي :127.1.1.1 . البحث ضمن مدى معين من الأحرف باستخدام [ ] : grep "user[1-5]" input.txt grep "user[a-zA-Z]" input.txt grep "user[acey123]" input.txt في المثال الأول سيقوم البرنامج بعرض الكلمة user المنهية بالأرقام برقم واحد من مجموعة الأرقام 1 إلى 5 كالتالي (user1,user2,....), أما في المثال الثاني سيعرض البرنامج الكلمة user المنتهي بحرف واحد من المجموعة a إلى z و A ألى Z , و في المثال الأخير قمنا بتحديد الأحرف بشكل فردي من المجموعة الحروف التالية (a,c,e,y,1,2,3) التي ستكون في نهاية الكلمة user. استخدام التعليمة {\}\ : grep "A\{2,5\}" input.txt سيقوم هذا الأمر بالبحث عن الأسطر المحتوية على مجموعة تتكون من حرفين A ألى خمس أحرف كحد أقصى كالتالي (AA,AAA,..) , تستطيع دمج هذه التعليمة مع التعليمة "[]" كالتالي : grep "[0-9]\{9\}" input.txt grep "th[a-z]\{2,5\}" input.txt grep "h\{3,}" input.txt grep "h\{,5}" input.txt في المثال الأول سيقوم البرنامج بالبحث عن الأرقام المكونة من 9 أرقام تلاحظ أننا وضعنا رقم واحد في الإشارة "\{\}" , أما في المثال الثاني سيبحث البرنامج عن الكلمات التي تبدأ بالحرفين th وتنتهي بحرفين أو خمس حروف على الأكثر , أما في المثال الثالث سيبحث البرنامج عن الكلمات التي تبدأ بالحرف h وتتكون من حرفين على الأقل أو أكثر , لاحظ كيف قمنا بكتابة الأمر , أما المثال الأخير فالبرنامج سيبحث عن كلمة تتكون من 5 أحرف على الأكثر . عرض الأسطر التي لا تحتوي على كلمة معينة : رمز PHP: grep -v user1 input.txt لعرض الأسطر التي لا تحتوي على الكلمة user1 يجب فقط أن تضيف المعامل "v-" بعد الأمر grep , كما تستطيع استخدام التعبيرات السابقة في هذا الأمر . انتهي الدرس بالتوفيق للجميع |
الساعة الآن 07:33 PM |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2 TranZ By
Almuhajir