أمر Pipe وGrep وSort في Linux/Unix مع أمثلة
⚡ ملخص ذكي
تقوم أوامر الأنابيب و grep و sort في أنظمة Linux و Unix بربط وتصفية النصوص: يقوم الأنبوب بتغذية مخرجات أمر واحد إلى الأمر التالي، ويبحث grep عن الأنماط، ويقوم sort بترتيب الأسطر، بينما تقوم المرشحات بتحويل البيانات بينها.

تُعد الأنابيب، و grep، و sort من بين الأدوات الأكثر استخدامًا في لينكس تُتيح لك هذه الأدوات استخدام سطر الأوامر، لأنها تُمكّنك من ربط الأوامر الصغيرة في سير عمل واحد فعّال. تشرح هذه الصفحة كل أداة منها بأمثلة عملية، ثم تُبيّن كيفية ربطها معًا باستخدام المرشحات.
ما هو الأنبوب في لينكس؟
الأنبوب هو أمر في نظام لينكس يسمح لك باستخدام أمرين أو أكثر بحيث تُستخدم مخرجات أحد الأوامر كمدخلات للأمر التالي. باختصار، تُغذّي مخرجات كل عملية العملية التالية مباشرةً، تمامًا مثل خط الأنابيب. يرمز للأنبوب بالرمز '|'.
تساعدك الأنابيب على دمج أمرين أو أكثر في وقت واحد وتشغيلها بالتتابع. يمكنك استخدام أوامر قوية تُنجز مهامًا معقدة بسرعة فائقة.
دعونا نفهم هذا بمثال.
عند استخدام الأمر 'cat' لعرض ملف يمتد على عدة صفحات، ينتقل المؤشر بسرعة إلى الصفحة الأخيرة من الملف، ولن ترى المحتوى الموجود في المنتصف.
ولتجنب ذلك، يمكنك توجيه مخرجات الأمر 'cat' إلى 'less'، والذي يعرض لك طول تمرير واحد فقط من المحتوى في كل مرة.
cat filename | less
سيوضح الرسم التوضيحي ذلك. يُظهر الرسم البياني أدناه كيف يمرر الأنبوب مخرجات أمر ما إلى الأمر التالي.
أوامر "pg" و"المزيد".
بدلاً من استخدام "less"، يمكنك أيضاً استخدام الأمر pg أو more:
cat Filename | pg
or
cat Filename | more
يمكنك بعد ذلك عرض الملف على شكل أجزاء يسهل قراءتها والتمرير لأسفل ببساطة عن طريق الضغط على مفتاح الإدخال. تُظهر لقطة الشاشة أدناه ملفًا مُقسّمًا إلى صفحات باستخدام الأمر "المزيد".
الأمر "grep".
لنفترض أنك تريد البحث عن معلومات معينة، مثل الرمز البريدي، في ملف نصي.
يمكنك تصفح المحتوى يدويًا بنفسك لـ tracاستخدم المعلومات. الخيار الأفضل هو استخدام البقرى يقوم هذا الأمر بفحص المستند بحثًا عن المعلومات المطلوبة وعرض النتيجة بالتنسيق الذي تريده.
بناء الجملة:
grep search_string
دعونا نرى ذلك عملياً. تُظهر لقطة الشاشة أدناه نتيجة البحث.
هنا، بحث الأمر grep في الملف 'sample' عن الكلمتين 'Apple' و'Eat'. يمكن استخدام الخيارات التالية مع هذا الأمر.
| خيار | الوظيفة |
|---|---|
| -v | إظهار كافة الأسطر التي لا تطابق السلسلة التي تم البحث عنها |
| -c | يعرض فقط عدد الأسطر المطابقة |
| -n | يظهر السطر المطابق ورقمه |
| -i | يتطابق مع الأحرف الكبيرة والصغيرة |
| -l | يظهر فقط اسم الملف مع السلسلة |
لنجرب الخيار "-i" على نفس الملف المستخدم أعلاه. تُظهر لقطة الشاشة أدناه النتيجة غير الحساسة لحالة الأحرف.
باستخدام الخيار '-i'، قام grep بتصفية السلسلة 'a' (غير حساسة لحالة الأحرف) من جميع الأسطر.
أمر "الفرز".
يساعد هذا الأمر في فرز محتويات الملف أبجديًا.
صيغة هذا الأمر هي:
sort Filename
انظر إلى محتويات ملف، كما هو موضح باستخدام الأمر cat أدناه.
يؤدي تشغيل أمر الفرز إلى ترتيب تلك الأسطر أبجديًا، كما هو موضح أدناه.
توجد أيضًا امتدادات لهذا الأمر، وهي مدرجة أدناه.
| خيار | الوظيفة |
|---|---|
| -r | Reverseفرز s |
| -n | فرز عدديا |
| -f | فرز غير حساس لحالة الأحرف |
يوضح المثال أدناه الفرز العكسي للمحتويات في الملف "abc".
ما هو المرشح؟
يحتوي نظام لينكس على العديد من أوامر التصفية مثل awk و grep و sed و spell و wc. يأخذ عامل التصفية مدخلات من أمر واحد، ويقوم ببعض المعالجة، ثم يُخرج مخرجات.
عند تمرير أمرين عبر مسار البيانات، يتم تمرير الناتج "المُصفّى" للأمر الأول إلى الأمر التالي. يوضح الرسم البياني أدناه كيفية دمج المرشح في مسار البيانات.
دعونا نفهم هذا بمساعدة مثال. لدينا الملف التالي 'sample'، الموضح أدناه باستخدام الأمر cat.
نريد تمييز الأسطر التي لا تحتوي على الحرف 'a' فقط، ولكن يجب أن تكون النتيجة بترتيب عكسي. ولتحقيق ذلك، يمكن استخدام الصيغة التالية:
cat sample | grep -v a | sort -r
دعونا نلقي نظرة على النتيجة، الموضحة في لقطة الشاشة أدناه.







.png)
.png)

