حرف A

لغة أوك لمعالجة النصوص

AWK

آخر تحديث: 2026-10-24
مستوى الشرح اختر المستوى التقني المناسب لك

الشرح المبسط

تخيل أن لديك جدولا كبيرا مليئا بالبيانات، وأنت تريد فقط استخراج العمود الثاني من كل صف، أو البحث عن كلمة معينة وطباعة السطر الذي يحتوي عليها. هنا يأتي دور لغة أوك (AWK). هي أداة ذكية وقوية في أنظمة لينكس (Linux) تقرأ الملفات النصية سطرا بسطر، وتسمح لك بالبحث عن نصوص معينة، أو استخراج أجزاء محددة من النص بسهولة. بعبارة أخرى، هي تشبه مساعدا سريعا يقوم بفرز البيانات وتلخيصها نيابة عنك دون الحاجة لفتح الملف النصي وتعديله يدويا.

الشرح التقني المتقدم

تعتبر أوك (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).