سؤال

وأريد أن بلدي النصي باش يفعل ما يلي:

ويجدها ملف، على سبيل المثال: hello.txt

وانه يبحث عن نص معين في الملف، على سبيل المثال: يا

إذا وجدت، انتقل إلى الخطوة التالية،

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

ويمكن لأي شخص أن تعطيني سيناريو هذا؟

وتحرير: أنا أيضا أود أن القيام بذلك أكثر من مرة على التوالي، لذلك شيء لتوفير الوقت يكون كبيرا

هل كانت مفيدة؟

المحلول

أولا، في الرد على تعليقاتكم:

<اقتباس فقرة>   

ولكن انا مبتدئ في باش، فعلت بعض التعليمي، وذلك ساعدني، ولكن هو لا شرح كيفية القيام بذلك الاشياء.

وبعد ذلك ربما كنت فعلت البرنامج التعليمي الخطأ. و دليل المبتدئين باش في TLDP ينبغي أن تكون قادرة على مساعدتك .

<اقتباس فقرة>   

وفعلت عمل فترة طويلة مع دفعة (ويندوز). هناك كنت بحاجة الحوار الاقتصادي الاستراتيجي لهذا الغرض. هل سنحتاج الى أداة خاصة للغاية بالنسبة باش؟

نعم، ولكنها جميعا هي المعيار على معظم أنظمة يونكس (بما في ذلك نظام التشغيل Mac OS X، أعتقد).

<اقتباس فقرة>   

ويمكن لأي شخص أن يعطي جوابا؟

وبما أنني في مزاج جيد اليوم ...

ويستخدم grep للبحث عن نص في الملفات.

وecho وإعادة توجيه (> >> < |) تعمل نفس الشيء في bash كما يفعلون في cmd.exe ويندوز '، لذلك ربما كنت أعرف مسبقا كيفية استخدام هذه.

#!/bin/bash
...
# The 'if ! grep ...' part is probably the hardest.
if ! grep "hey" "$filename" &> /dev/null; then
    # "hey" was not found - use 'echo' to add it
fi
...

والباقي عليك معرفة نفسك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top