Awk

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. Awk: دليل شامل للمبتدئين

Awk هي لغة برمجة نصية قوية ومفيدة للغاية، صُممت خصيصًا لمعالجة النصوص. اسمها مشتق من الأحرف الأولى لمؤلفيها: Alfred Aho، Peter Weinberger، و Brian Kernighan. تُعتبر Awk أداة أساسية لمسؤولي النظام، ومطوري البرامج، وأي شخص يتعامل بانتظام مع ملفات نصية. هذا المقال يقدم مقدمة شاملة لـ Awk، بدءًا من الأساسيات وصولًا إلى المفاهيم الأكثر تقدمًا، مع أمثلة عملية لتوضيح كيفية استخدامها.

ما هي Awk ولماذا نستخدمها؟

Awk ليست لغة برمجة للأغراض العامة مثل Python أو Java. إنها تتفوق في مهام معينة تتعلق بمعالجة النصوص:

  • البحث عن أنماط محددة: يمكن لـ Awk البحث عن أسطر في ملف نصي تطابق نمطًا معينًا (باستخدام التعبيرات النمطية).
  • استخراج البيانات: يمكن استخراج أجزاء محددة من البيانات من كل سطر يطابق النمط.
  • تنسيق الإخراج: يمكن تنسيق البيانات المستخرجة بطرق مختلفة لإنشاء تقارير أو ملفات إخراج أخرى.
  • إجراء العمليات الحسابية: يمكن إجراء العمليات الحسابية على البيانات المستخرجة.
  • أتمتة المهام: يمكن استخدام Awk لأتمتة المهام المتكررة المتعلقة بمعالجة النصوص.

تُعد Awk مفيدة بشكل خاص في مهام مثل:

  • تحليل ملفات السجلات (Log files).
  • إنشاء تقارير من بيانات نصية.
  • تحويل البيانات من تنسيق إلى آخر.
  • تنفيذ عمليات البحث والاستبدال المعقدة.

بنية برنامج Awk

يتكون برنامج Awk من سلسلة من الأنماط (Patterns) و الإجراءات (Actions). تُقرأ Awk ملف الإدخال سطرًا سطرًا، وإذا تطابق السطر الحالي مع نمط معين، فسيتم تنفيذ الإجراء المرتبط بهذا النمط. بشكل عام، تكون بنية البرنامج كالتالي:

```awk pattern { action } pattern { action } ... ```

  • pattern هو تعبير يحدد الشرط الذي يجب أن يستوفيه السطر لكي يتم تنفيذ الإجراء. يمكن أن يكون النمط تعبيرًا نمطيًا (Regular Expression) أو تعبيرًا شرطيًا.
  • action هو مجموعة من الأوامر التي يتم تنفيذها عندما يتطابق السطر مع النمط. يمكن أن تتضمن الأوامر طباعة البيانات، إجراء العمليات الحسابية، أو أي عمليات أخرى.

إذا لم يتم تحديد نمط، فسيتم تنفيذ الإجراء لكل سطر في ملف الإدخال. إذا لم يتم تحديد إجراء، فسيتم طباعة السطر الحالي.

المتغيرات المدمجة في Awk

توفر Awk عددًا من المتغيرات المدمجة التي تسهل معالجة النصوص:

  • $0: يمثل السطر الحالي بأكمله.
  • $1, $2, $3, ...: تمثل الحقول (Fields) في السطر الحالي. يتم فصل الحقول افتراضيًا بواسطة المسافات البيضاء (المسافات، علامات الجدولة، إلخ). يمكن تغيير فاصل الحقول باستخدام المتغير `FS`.
  • NF: يمثل عدد الحقول في السطر الحالي.
  • NR: يمثل رقم السطر الحالي.
  • FS: يمثل فاصل الحقول (Field Separator). افتراضيًا، يكون `FS` عبارة عن مسافة بيضاء.
  • RS: يمثل فاصل السجلات (Record Separator). افتراضيًا، يكون `RS` عبارة عن سطر جديد.
  • OFS: يمثل فاصل الحقول للإخراج (Output Field Separator). افتراضيًا، يكون `OFS` عبارة عن مسافة.
  • ORS: يمثل فاصل السجلات للإخراج (Output Record Separator). افتراضيًا، يكون `ORS` عبارة عن سطر جديد.

أمثلة عملية على استخدام Awk

دعنا نستكشف بعض الأمثلة العملية لتوضيح كيفية استخدام Awk:

1. طباعة السطر الأول من ملف:

```awk NR == 1 { print } ```

هذا البرنامج يطبع السطر الأول فقط من ملف الإدخال. `NR == 1` هو النمط الذي يحدد الشرط (رقم السطر يساوي 1)، و `print` هو الإجراء الذي يطبع السطر الحالي.

2. طباعة الحقل الثاني من كل سطر:

```awk { print $2 } ```

هذا البرنامج يطبع الحقل الثاني من كل سطر في ملف الإدخال. نظرًا لعدم وجود نمط، فسيتم تنفيذ الإجراء لكل سطر.

3. طباعة الأسطر التي تحتوي على كلمة "error":

```awk /error/ { print } ```

هذا البرنامج يطبع الأسطر التي تحتوي على الكلمة "error". `/error/` هو تعبير نمطي يطابق أي سطر يحتوي على الكلمة "error".

4. طباعة الأسطر التي تبدأ بكلمة "log":

```awk /^log/ { print } ```

هذا البرنامج يطبع الأسطر التي تبدأ بكلمة "log". `^log` هو تعبير نمطي يطابق أي سطر يبدأ بكلمة "log".

5. حساب مجموع الحقل الثالث من جميع الأسطر:

```awk { sum += $3 } END { print "Sum:", sum } ```

هذا البرنامج يحسب مجموع الحقل الثالث من جميع الأسطر في ملف الإدخال. `sum += $3` يضيف قيمة الحقل الثالث إلى المتغير `sum` لكل سطر. `END { print "Sum:", sum }` يطبع قيمة `sum` بعد معالجة جميع الأسطر. `END` هو نمط خاص يتم تنفيذه بعد معالجة جميع الأسطر.

6. تغيير فاصل الحقول إلى فاصلة (,):

```awk BEGIN { FS = "," } { print $1, $2 } ```

هذا البرنامج يغير فاصل الحقول إلى فاصلة (,) ثم يطبع الحقل الأول والثاني من كل سطر. `BEGIN` هو نمط خاص يتم تنفيذه قبل معالجة أي سطر من ملف الإدخال.

التعبيرات النمطية في Awk

تُعد التعبيرات النمطية (Regular Expressions) جزءًا أساسيًا من Awk. تسمح لك بتحديد أنماط معقدة للبحث عنها في ملفات النص. بعض التعبيرات النمطية الشائعة تشمل:

  • `.`: يطابق أي حرف واحد.
  • `*`: يطابق صفر أو أكثر من التكرارات للحرف السابق.
  • `+`: يطابق واحد أو أكثر من التكرارات للحرف السابق.
  • `?`: يطابق صفر أو واحد من التكرارات للحرف السابق.
  • `^`: يطابق بداية السطر.
  • `$`: يطابق نهاية السطر.
  • `[ ]`: يطابق أي حرف داخل المجموعة.
  • `[^ ]`: يطابق أي حرف ليس داخل المجموعة.

دوال Awk المدمجة

توفر Awk عددًا من الدوال المدمجة التي يمكن استخدامها لتنفيذ عمليات مختلفة:

  • length(string): إرجاع طول السلسلة النصية.
  • substr(string, start, length): استخراج جزء من السلسلة النصية.
  • index(string, substring): إرجاع موقع السلسلة الفرعية داخل السلسلة النصية.
  • match(string, regex): التحقق مما إذا كانت السلسلة النصية تطابق التعبير النمطي.
  • split(string, array, separator): تقسيم السلسلة النصية إلى مصفوفة باستخدام الفاصل المحدد.
  • printf(format, arguments): تنسيق وطباعة البيانات باستخدام تنسيق محدد.
  • tolower(string): تحويل السلسلة النصية إلى أحرف صغيرة.
  • toupper(string): تحويل السلسلة النصية إلى أحرف كبيرة.

استخدام Awk في الخيارات الثنائية والتحليل المالي

على الرغم من أن Awk ليست أداة تحليل مالي مباشرة، يمكن استخدامها لمعالجة البيانات النصية التي يتم الحصول عليها من مصادر مختلفة، مثل بيانات الأسعار التاريخية أو ملفات السجلات من منصات التداول.

  • **تحليل بيانات الأسعار:** يمكن استخدام Awk لاستخراج بيانات الأسعار (الفتح، الإغلاق، الأعلى، الأدنى) من ملفات CSV أو ملفات نصية أخرى، ثم إجراء العمليات الحسابية عليها لحساب المؤشرات الفنية مثل المتوسطات المتحركة (Moving Averages) أو مؤشر القوة النسبية (RSI).
  • **تحليل سجلات التداول:** يمكن استخدام Awk لتحليل ملفات سجلات التداول لاستخراج معلومات حول الصفقات المربحة والخاسرة، وحساب معدل الربح، وتقييم أداء استراتيجيات التداول المختلفة.
  • **تصفية البيانات:** يمكن استخدام Awk لتصفية البيانات غير الضرورية أو غير الصحيحة من ملفات البيانات، مما يضمن دقة التحليل.

على سبيل المثال، يمكن استخدام Awk لتحليل بيانات الخيارات الثنائية المتعلقة باستراتيجية 60 ثانية، واستخلاص معلومات حول عدد الصفقات الرابحة والخاسرة، وحساب نسبة النجاح. يمكن أيضًا استخدامه لتحليل بيانات Pin Bar أو Engulfing Pattern لتحديد فعالية هذه الاستراتيجيات. بالإضافة إلى ذلك، يمكن استخدام Awk لتحليل حجم التداول (Volume) لتأكيد الاتجاهات (Trends) وتحديد نقاط الدخول والخروج المحتملة. يمكن أيضاً استخدامه مع مؤشرات مثل MACD و Bollinger Bands لتصفية الإشارات وتحسين دقة التداول. استراتيجيات أخرى مثل Boundary Options و One Touch Options يمكن تحليلها أيضاً باستخدام Awk لمعالجة البيانات وتحديد الأنماط. كما يمكن استخدام Awk مع استراتيجيات إدارة المخاطر مثل Martingale و Anti-Martingale لتقييم تأثيرها على رأس المال. تحليل Call Options و Put Options يمكن أن يستفيد أيضاً من قدرات Awk في معالجة البيانات. استخدام Hedging Strategies يمكن أيضاً تقييمه من خلال تحليل البيانات باستخدام Awk. تقييم Trend Following Strategies و Mean Reversion Strategies يمكن أن يستفيد أيضاً من قدرات Awk. تحليل Scalping Strategies و Day Trading Strategies يمكن أن يتم باستخدام Awk. استخدام News Trading Strategies يمكن أن يتم تقييمه باستخدام Awk لتحليل الأخبار وتأثيرها على الأسعار. تقييم High-Frequency Trading Strategies يمكن أن يتم باستخدام Awk لتحليل البيانات عالية التردد. تحليل Arbitrage Strategies يمكن أن يتم باستخدام Awk لمقارنة الأسعار من مصادر مختلفة. استخدام Pair Trading Strategies يمكن أن يتم تقييمه باستخدام Awk لتحليل العلاقة بين أزواج الأصول. تقييم Swing Trading Strategies يمكن أن يتم باستخدام Awk لتحليل الأنماط السعرية على المخططات الزمنية الأكبر. تحليل Position Trading Strategies يمكن أن يتم باستخدام Awk لتحليل الاتجاهات طويلة الأجل. استخدام Algorithmic Trading Strategies يمكن أن يتم تقييمه باستخدام Awk لتحليل أداء الخوارزميات.

كتابة برامج Awk وتنفيذها

يمكن كتابة برامج Awk باستخدام محرر نصوص عادي وحفظها في ملف بامتداد `.awk`. لتنفيذ البرنامج، استخدم الأمر التالي:

```bash awk -f filename.awk inputfile ```

حيث:

  • `filename.awk` هو اسم ملف Awk.
  • `inputfile` هو اسم ملف الإدخال.

يمكن أيضًا كتابة برنامج Awk مباشرةً من سطر الأوامر باستخدام الخيار `-e`:

```bash awk -e 'program' inputfile ```

حيث:

  • `program` هو برنامج Awk.

الخلاصة

Awk هي أداة قوية ومرنة لمعالجة النصوص. من خلال فهم الأساسيات التي تم تناولها في هذا المقال، يمكنك البدء في استخدام Awk لأتمتة المهام المتكررة، وتحليل البيانات، وإنشاء تقارير مخصصة. مع الممارسة والتجريب، ستتمكن من إطلاق العنان للإمكانات الكاملة لـ Awk.

تحليل البيانات التعبيرات النمطية لغات البرمجة النصية Bash Scripting Unix Shell Sed grep Regular Expressions Data Mining Data Analysis

ابدأ التداول الآن

سجّل في IQ Option (الحد الأدنى للإيداع 10 دولار) افتح حساباً في Pocket Option (الحد الأدنى للإيداع 5 دولار)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin لتصلك: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات اتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер