إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

محتاج سكربت

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • محتاج سكربت

    ازيكم يا شباب

    الآن أنا عندي 3 ملفات في المجلد /abc

    الملف الأول إسمه sam.txt و الثاني غير معروف اسمه و الثالث tam

    و محتوى الملفات الثلاثة متطابق ، و هو كما يلي :


    yellow

    red

    green

    اخوكم محتاج لسكربت ينفذ مايلي :

    1- عند تشغيله يسأل عن السطر المراد حذفه ، مثلاً أن المستخدم أدخل كلمة red

    فيقوم السكربت بالبحث في كل الملفات الموجودة في المجلد /abc (حتى لو تم اضافة ملفات أخرى ) عن أسطر تحتوي على الكلمة التي أدخلها المستخدم (red في هذه الحالة ) و يقوم بحذف هذه الأسطر

    انا مبتدئ في السكربتات و مش قادر ازبطها صح ، ممكن حد يساعدني ؟ و شكراً
    لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

  • #2
    كود PHP:
    #bin/bash
    read x;
    grep -r $x * | read f;
    mv $f $f.old
    sed 
    's/$x/ /g' $f>$f.old
    mv $f
    .old $f 
    مع ملاحظة اني مش جربته فشوف انت
    حط انت بقي برنتاتك وظبت
    BOOOF , I AM GONE
    Still , you gotta wait for my PRESENT :D
    C programming arabic Tutorial|Programming-fr34ks

    تعليق


    • #3
      با سلام !
      إيه اﻹستجابة السريعة جداً هذي ! ما شاء الله الف شكر

      طيب أخوي العزيز لو اردت استبدال yellow ب black مثلاً ؟

      مع الرجاء ان تضيف comments عشان اعرف دور كل سطر بالضبط ايه ، رغم اني عارف بعضها

      و الف شكر مجدداً
      لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

      تعليق


      • #4
        بالمناسبة

        ادخلت الكلمة المطلوب حذفها فعرض لي ما يلي :

        mv: missing destination file operand after `.old'
        Try `mv --help' for more information.
        لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

        تعليق


        • #5
          السلام عليكم
          اضافة الى ما قدمه اخونا st0rm ممكن تستعمل الطريقة الاتية:
          بفرض ان المجلد اسمه abc ضع السكريبت في ملف خارج المجلد ، و اعطه صيغة تنفيذية
          كود:
          for i in abc/*; do sed '/red/d' $i > $i'new'; done
          لاحظ اننا نقوم بحذف كل الاسطر التي تحوي كلمة red مثلا، ممكن تغيرها في السكريبت كلما اردت استعمال كلمة اخرى، او ببساطة تجعلها من مدخلاته.
          ثم لاحظ اننا وضعنا النتيجة في ملفات جديدة filenew.
          ارجو ان يفيدك.
          السلام عليكم.

          تعليق


          • #6
            المشاركة الأصلية بواسطة fakir مشاهدة المشاركة
            السلام عليكم
            اضافة الى ما قدمه اخونا st0rm ممكن تستعمل الطريقة الاتية:
            بفرض ان المجلد اسمه abc ضع السكريبت في ملف خارج المجلد ، و اعطه صيغة تنفيذية
            كود:
            for i in abc/*; do sed '/red/d' $i > $i'new'; done
            لاحظ اننا نقوم بحذف كل الاسطر التي تحوي كلمة red مثلا، ممكن تغيرها في السكريبت كلما اردت استعمال كلمة اخرى، او ببساطة تجعلها من مدخلاته.
            ثم لاحظ اننا وضعنا النتيجة في ملفات جديدة filenew.
            ارجو ان يفيدك.
            السلام عليكم.
            أخي ما هو دور 'new' هنا ، و ماذا لو اردت حفظ الملفات نفسها ؟ و ألف شكر
            لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

            تعليق


            • #7
              السلام عليكم
              لقد قصدت بـ new الملف الجديد، و اذا اردت ان تبقيها باسمها اي حفظ نفس الملفات استعمل :

              كود:
              for i in abc/*; do sed '/red/d' $i > $i'new'; mv $i'new' $i; done
              السلام عليكم.

              تعليق


              • #8
                الف شكر اخوي على جهودك الطيبة
                لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

                تعليق

                يعمل...
                X