بسم الله 
الرحمن الرحيم
الأداة grep:
grep هي أداة تستخدم للبحث في الملفات النصية 
أو المعطيات من برنامج أخر في نظام لينكس و أظهار الأسطر الموافقة للتعبير (Regular 
Expression)  إلى الشاشة أو حفظها في ملف نصي .
الاستخدام الأساسي :
- 
 
البحث عن كلمة في ملف نصي :
 
grep "localhost" /etc/host
سيقوم هذا الأمر بالبحث عن الأسطر المحتوية 
على الكلمة "localhost" في الملف 
"etc/host/" .
- 
 
البحث في معطيات برنامج :
 
ls -l | grep "root"
بواسطة الحرف ( | ) الذي يقوم بتحويل 
معطيات البرنامج ls
إلى البرنامج grep  الذي يبحث 
عن الكلمة root في المعطيات .
التعبيرات المنتظمة (Regular Expressions) :
- 
 
البحث عن كلمة في بداية السطر :
 
grep "^google" /etc/host
باستخدام الإشارة  
^  سيظهر البرنامج الأسطر التي 
تبدأ بالكلمة google فقط 
.
- 
 
البحث عن كلمة في نهاية السطر :
 
grep "root$" /etc/passwd
باستخدام الإشارة $ سيطبع البرنامج 
الأسطر التي تنتهي بالكلمة root .
- 
 
أظهار عدد الأسطر الفارغة في الملف :
 
grep
-c "^$" /etc/passwd
بدمج الإشارتين 
^$ سيبحث البرنامج عن الأسطر الفارغة ويطبع عدد الأسطر الفارغة 
وفي حالة  كتابة الأمر كالتالي $root^ 
بدون الأمر c- سيطبع 
البرنامج الأسطر المحتوية على الكلمة root فقط 
.
- 
 
استخدام أشارة النقطة ( . ) في البحث :
 
grep
"hell." /home/user/example.txt
يقوم البرنامج باستبدال النقطة بحرف 
واحد و البحث عن الكلمات المتوافقة في هذه الحالة سيبحث البرنامج عن الكلمات(hello,hell1,hellg,....) 
. 
- 
 
استخدام أشارة النجمة ( * ) في البحث :
 
ls -l 
|grep "*.txt"
تختلف هذه الإشارة عن سابقتها في 
أنها لا تحدد عدد الأحرف ,ففي الأمر السابق قمنا بتحويل معطيات الأمر ls 
إلى البرنامج وباستخدام ( * ) سيطبع 
البرنامج الملفات المنتهية بالامتداد 
txt كالتالي 
(a.txt, abc.txt ,
ab1.txt , aaa111.txt,.....).
- 
 
استخدام أشارة النجمة ( +\ ) في البحث :
 
grep "hi \+hello" input.txt
ستعرض هذه الإشارة الأسطر التي 
تحتوي على الكلمتين  hi 
و hello و يفصل بينها حرف مسافة واحد على الأقل أو أكثر , و 
ستكون المعطيات كالتالي :
- 
 hi hello
 - 
 hi hello
 - 
 hi hello
 
و تستطيع وضع أي حرف بدل محرف المسافة كالتالي :
grep "hih\+hello" input.txt
.(hihhello,hihhhhello,....) و ستكون النتائج كالتالي 
- 
 
البحث عن النصوص المحتوية على الإشارات الخاصة بالبحث :
 
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 أحرف على الأكثر .
- 
 
عرض الأسطر التي لا تحتوي على كلمة معينة :
 
grep
-v user1 input.txt
لعرض الأسطر التي لا تحتوي على الكلمة 
user1 يجب فقط أن تضيف المعامل "v-"
بعد الأمر grep , كما تستطيع استخدام 
التعبيرات السابقة في هذا الأمر . 
شكرا كل الشكر
ردحذففلم اجد مصادر عربية لشرح الاوامر الا القليل
لا شكر على الواجب
حذفو أذا لم كان عندك أي استفسار عن أي أمر و لم تجد أرجو أن تبلغني
Thanks For Ever
ردحذفشكرا وجزاك الله خير واتمنى تكتب لنا عن الاوامر الاكثر اهميه واستخداما بنفس الشرح
ردحذفشششكرا
ردحذف