نظرة عامة
يُمثّل التعامل مع ملفات السجلات الضخمة والبيانات المجدولة ركيزة أساسية في إدارة بيئات لينكس اليومية، وهنا تبرز أداة cut كإحدى أخف وأسرع الأدوات الموجهة لمعالجة النصوص وتصفية محتواها. يستعرض هذا الدليل العملي كيفية توظيف خيارات الأداة الأساسية والمتقدمة في توزيعة أوبونتو، سواء عبر عزل الحقول بواسطة محددات مخصصة أو تقطيع البيانات بالاعتماد على مواضع الأحرف والبايتات.
إعداد بيئة العمل وإنشاء عينات البيانات التجريبية
لضمان إجراء التجارب في بيئة معزولة ونظيفة دون التأثير على ملفات النظام الأخرى، ننشئ دليلاً خاصاً للتطبيق وننتقل إليه مباشرة عبر تشغيل الأمر التالي: mkdir -p ~/cut_practice && cd ~/cut_practice.

سنحتاج أولاً إلى بيانات مهيكلة تعتمد على النقطتين الرأسيتين (:) كفاصل، ولتحقيق ذلك ننشئ ملف users.txt متضمناً سجلات المستخدمين وأقسامهم الوظيفية باستخدام أمر printf:

ولمحاكاة التنسيقات الشائعة مثل ملفات CSV المفصولة بفواصل عادية (,)، نبني ملفاً تجريبياً باسم servers.csv يحتوي على عناوين الخوادم وحالات التشغيل عبر الأمر الآتي:

للتحقق من سلامة البنية التنسيقية لملف users.txt والتأكد من مطابقة السجلات للصيغة المطلوبة، نستعرض المحتوى بواسطة أمر cat users.txt:

وبالمثل، نتأكد من اكتمال أعمدة الخوادم وتسجيل رموز الاستجابة بدقة في servers.csv بتنفيذ cat servers.csv:

تصفية الأعمدة والحقول عبر خياري المحدد (-d) والحقل (-f)
عند الرغبة في عزل المعرّف الرقمي فقط من ملف users.txt بالاعتماد على الفاصل (:)، نُمرر الأمر cut -d ':' -f 1 users.txt.
يُعرّف الخيار -d ':' رمز الفصل المعتمد، بينما يلتقط -f 1 العمود الأول حصراً ليمنحنا قائمة واضحة بمعرفات ID:

تتيح الأداة جلب عدة أعمدة متباعدة في آنٍ واحد بتحديد أرقامها مفصولة بفاصلة؛ فعبر الأمر cut -d ':' -f 2,4 users.txt، نحصل فوراً على اسم المستخدم متبوعاً بقسمه الوظيفي فقط مع الحفاظ على الفاصل الأصلي:

لاستخراج نطاق متتابع من الأعمدة دون الحاجة لكتابة كل حقل على حدة، يُستخدم رمز الشرطة (-) كما في الأمر cut -d ',' -f 1-3 servers.csv.
بهذا التكوين، يتولى الخيار -d ',' تحديد الفاصلة معياراً للتقسيم، ويعمل -f 1-3 على اقتطاع الحقول من الأول إلى الثالث، مبرزاً اسم الخادم وعنوان IP وحالة النشاط:

إذا أردنا تجاوز العمود التمهيدي وجلب كافة البيانات المتبقية حتى نهاية السطر، نعتمد صيغة النطاق المفتوح بتشغيل cut -d ':' -f 2- users.txt.
يُهمل النمط -f 2- العمود الأول (ID) بالكامل، ويعرض تفاصيل الاسم والمسؤولية والقسم دفعة واحدة:

التقطيع النصي ثابت العرض بالاعتماد على الأحرف (-c) والبايتات (-b)
في الحالات التي تفتقر فيها البيانات إلى فواصل قياسية، يوفر الخيار -c إمكانية الاقتطاع بمواضع المحارف؛ إذ يقوم الأمر cut -c 1-5 users.txt باقتطاع الأحرف من الموضع الأول حتى الخامس من كل سطر:

وبالمثل، يتيح تحديد قطاع وسطي داخل الأسطر استخراج أجزاء نصية معينة دون سواها، كما يتضح بتنفيذ cut -c 5-15 users.txt لعزل المقاطع الواقعة بين الحرف الخامس والخامس عشر:

عند التعامل مع ترميزات تتطلب معالجة الحجم الفيزيائي بدلاً من الأحرف المجردة، يعمل الخيار -b على مستوى البايتات. يكفل الأمر cut -b 1-8 servers.csv قراءة أول ثمانية بايتات فقط لاقتطاع معرّف الخادم بدقة متناهية:

التحكم بفاصل المخرجات واستبعاد الحقول المحددة (–complement)
تتيح الأداة إعادة صياغة المخرجات واستبدال الفواصل القديمة بأخرى أكثر وضوحاً؛ حيث يُنفّذ الأمر cut -d ':' -f 1,2,4 --output-delimiter=' | ' users.txt استخراجاً للحقول المطلوبة مع إحلال علامة الأنبوب (|) محل النقطتين الرأسيتين لتقديم البيانات بشكل أكثر تنظيماً:

في سيناريوهات أخرى، قد يكون استبعاد حقل وحيد أسهل بكثير من ذكر سائر الحقول؛ هنا يوفر الخيار المتقدم --complement آلية التحديد المعكوس، كما في cut -d ',' --complement -f 2 servers.csv الذي يحذف عنوان IP (الحقل الثاني) ويُبقي على كافة الأعمدة الأخرى:

لتفادي الأخطاء البرمجية الناتجة عن الأسطر التي لا تطابق التنسيق المطلوب، يضمن خيار التصفية -s (--only-delimited) تجاهل السطور الخالية من الفاصل المعتمد، ويظهر ذلك بتطبيق cut -d ':' -s -f 2 users.txt للتركيز على استخلاص الأسماء من الأسطر الصالحة فقط:

بهذا نكون قد أحطنا بأهم المعاملات التطبيقية لأمر cut داخل أوبونتو، وكيفية توظيفه لعزل الحقول والتحكم في بنية النصوص بكفاءة عالية. تمنحك هذه المهارات أساساً متيناً لتسريع بناء سكربتات باش وأتمتة تحليل السجلات في بيئات العمل الحقيقية.