الشرح المبسط
الشرح التقني المتقدم
تعتبر أوك (AWK) أكثر من مجرد أمر، فهي لغة برمجة كاملة مخصصة لمعالجة النصوص (Text Processing) وتحليل البيانات واستخراجها. تعمل الأداة عن طريق قراءة المدخلات سطراً بسطر، حيث يعتبر كل سطر سجلاً (Record)، ويتم تقسيم كل سطر إلى حقول (Fields) بناءً على فاصل محدد.
كيفية عمل لغة أوك خلف الكواليس
تعتمد الأداة على بنية أساسية تتكون من النمط (Pattern) والإجراء (Action). إذا طابق السطر النمط المحدد، يتم تنفيذ الإجراء عليه:
المتغيرات المدمجة (Built-in Variables): تلعب دوراً حاسماً في تسهيل كتابة الأوامر، مثل متغير فاصل الحقول (FS) ومتغير رقم السجل (NR) الذي يحسب عدد الأسطر التي تمت قراءتها.
الاستخدام العملي لاستخراج البيانات
تخيل أنك تريد عرض أسماء المستخدمين في النظام من ملف كلمات المرور، مع تحديد النقطتين كفاصل للحقول:
أمر التنفيذ:
awk -F':' '{ print $1 }' /etc/passwd
توضيح لما يحدث في هذا الأمر والخيارات المتاحة:
- خيار
-F: يستخدم لتحديد فاصل الحقول (Field Separator)، وفي هذه الحالة حددنا النقطتين الرأسيتين. - الإجراء
print $1: يخبر الأداة بطباعة الحقل الأول فقط من كل سطر يطابق الشروط. - المتغير
$0: يمثل السطر أو السجل (Record) بالكامل، بينما تمثل الأرقام المتتالية مثل الحقل الأول والحقل الثاني أجزاء النص المقسمة.
فلترة البيانات باستخدام الشروط
يمكنك استخدام الشروط المنطقية المتقدمة. مثلاً، طباعة الأسطر التي يكون فيها رقم تعريف المستخدم (UID) في الحقل الثالث أكبر من 1000:
أمر التنفيذ:
awk -F':' '$3 > 1000 { print $1, $3 }' /etc/passwd
توضيح للعملية المنطقية في الأمر السابق:
- تم استخدام المعامل
>لمقارنة القيمة العددية في الحقل الثالث (Field). - إذا تحقق الشرط، سيتم تنفيذ الإجراء وطباعة الحقل الأول متبوعاً بالحقل الثالث.
ملاحظة ختامية: الصورة الكبرى (نصيحة احترافية)
لغة أوك (AWK) هي الخيار الأمثل للتعامل مع ملفات السجلات (Log Files) الضخمة واستخراج تقارير سريعة ومخصصة منها. دمجها مع أدوات أخرى عبر مسارات التوجيه (Pipes) يجعلها من أقوى أدوات سطر الأوامر (Command Line) في أنظمة التشغيل المبنية على بنية يونكس (Unix).