منتدى استراحات زايد

منتدى استراحات زايد (http://vb.ma7room.com/index.php)
-   منتدى أخبار المواقع والمنتديات العربية والأجنبية (http://vb.ma7room.com/forumdisplay.php?f=183)
-   -   كيفية اليحث باستخدام grep لعرض المطلوب (http://vb.ma7room.com/showthread.php?t=606625)

محروم.كوم 09-26-2011 04:00 AM

كيفية اليحث باستخدام 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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227