السلام عليكم ورحمة الله وبركاته
يتوفر نظام لينكس
على العديد من الأدوات التي تساعدنا في
فلترة النصوص كsed, cut, tr ومنها
ما يعتبر كلغة برمجة بحد ذاتها كawk
؛ ومن أسهل هذه
الأدوات الأداة cut .
Cut هو أمر يستخدم
لاستخراج جزء من النص سواء من ملفات أو
عن طريق مجرى الدخل القياسي
نود مثلا استخراج
6 الحروف
الأولى من ملف /etc/issue الذي
يحتوي على معلومات عن التوزيعة المستخدمة :
نستخدم الخيار -c لتحديد مواضع الحروف التي نود عرضها
-لعرض 6 أحرف الأولى من كل سطر ، نستخدم سواء:
- لاستخراج الحروف المتواجدة ابتداء من الموضع السابع إلى نهاية السطر :
cut -c 7-
- لاستخراج الحروف المتواجدة في المجال [7-15] :
cut -c 7-15
الآن لو قمنا بالولوج للملف /etc/passwd سيتبين لنا أنّ كل سطر مقسم لمجموعة من الحقول مفصولة بالرمز : ، نفس الأمر بالنسبة لمجموعة من الملفات الأخرى لاسيما ملف /etc/group و /etc/shadow
ما نريده الآن هو استعراض عمود محدد من الملف أو مجموعة أعمدة ، سنستخدم في هذا الشأن كلا من الخاصيتين -d و -f
-d : لتحديد الرمز الفاصل بين الحقول، افتراضيا هي المسافة tab وفي حالتنا هو الرمز ":"
-f : لتحديد الحقل المراد استعراضه
سنقوم إذن باستخراج العمود الأول باستخدام الأمر:
cut -d : -f 1
كما يمكننا كتابة الأمر بدون مسافات تفصل الخصائص وقيمتها كالتالي :
cut -d: -f1
لاستخراج العمود الأول والسابع :
cut -d: -f1,7
لاستخراج الأعمدة الموجودة في المجال [1-3]
cut -d: -f1-3
لاستخراج كل الأعمدة ما عدا العمود الثاني :
cut --complement -d: -f2
ولتغيير الفاصل الذي يظهر عند استخراج أكثر من عمود نستخدم الخيار --output-delimiter
كالتالي :
cut --complement -d: -f2 --output-delimiter=' '
قمنا بجعل الفاصل الذي يظهر هو المسافة الفارغة ويمكنك عمل أي شيء غير ذلك
إلى هنا نهاية الموضوع، الجدير بالذكر أنّ الأمر cut إمكانياته محدودة جدا مقارنة بأوامر وأدواة أخرى لاسيما sed و awk
الإبتساماتإخفاء