الأمر cut لقص واستخراج جزء من النص


السلام عليكم ورحمة الله وبركاته




يتوفر نظام لينكس على العديد من الأدوات التي تساعدنا في فلترة النصوص كsed, cut, tr ومنها ما يعتبر كلغة برمجة بحد ذاتها كawk ؛ ومن أسهل هذه الأدوات الأداة cut .

Cut هو أمر يستخدم لاستخراج جزء من النص سواء من ملفات أو عن طريق مجرى الدخل القياسي

نود مثلا استخراج 6 الحروف الأولى من ملف /etc/issue الذي يحتوي على معلومات عن التوزيعة المستخدمة :

نستخدم الخيار -c لتحديد مواضع الحروف التي نود عرضها

-لعرض 6 أحرف الأولى من كل سطر ، نستخدم سواء:
cut -c 1-6 أو cut -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


الإبتساماتإخفاء