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

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

مطابقة سطر يبدأ بنص معين

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

  • [سؤال] مطابقة سطر يبدأ بنص معين

    عودة إلى sed مرة أخرى
    بفرض لدي الملف التالي:
    begin line1 line1 line1 end
    begin line2 line2 line2 end
    begin line3 line3 line3 end
    أرغب باستبدال السطر الذي يبدأ بـ "begin line2" بالنص "bla bla bla"
    جزيل الشكر للمساعدة سلفاً

  • #2
    من قوانين المنتدى أن نساعدك على الكود
    لا نعطيك عمل منزلي جاهز
    +
    أي لغة برمجة تعمل عليها
    Fear no Creation, Fear Its Creator - Obey No Created Rules, Obey The Only Creator
    The TRUTH Shall Set you FREE
    مدونتي

    تعليق


    • #3
      شكرا على النصيحة لكني لم أجد في رسالتي ما يخالف قانون المنتدى
      وحبذا لو فرأت نص رسالتي مرة أخرى... فأنا وإن لم أكن أتكلم عن لغة برمجة محددة، ولكني أتكلم عن مشكلة محددة تواجهني في استخدام أداة محددة اسمها sed!!
      وحاولت استخدام التعليمة:
      s/^begin line2/anotherText/g
      ولكن دون جدوى

      تعليق


      • #4
        كود PHP:
        sed -'s/begin line2/anotherText/g' textfile 

        تعليق


        • #5
          الحقيقة أنني أخزن تعليمات sed تباعاً في ملف script-file بفضل تعليمة -f وعليه فلن يكون بوسعي الاستعانة بالبارامتر -i
          حل آخر؟

          تعليق


          • #6
            ادرك تماما ان المضوع يخص sed ولكن لما لا تستخدم awk؟
            استثمر وقتك بما هو مفيد. افد نفسك و غيرك بما تعلم.
            مدونتي (النطاق تغير!) | برمجياتي | سايه

            تعليق


            • #7
              لغة sed ولغة awk ماهذا الذى تتحدثون عنه اعنى هل هناك شرح لهذين الامرين فانا اعرف انهم اوامر شيل لتنفيذ شئ معين اما كزنهما لغة برمجه فهذا جديد على

              تعليق


              • #8
                المشاركة الأصلية بواسطة 7L!nux مشاهدة المشاركة
                لغة sed ولغة awk ماهذا الذى تتحدثون عنه اعنى هل هناك شرح لهذين الامرين فانا اعرف انهم اوامر شيل لتنفيذ شئ معين اما كزنهما لغة برمجه فهذا جديد على
                توجد شروحات فى المجتمع للأمرين ( إبحث عنهم )

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

                يمكن إستخدام هذا التعبير ليطابق ماتريد
                كود PHP:
                s_^begin line2[^>]*$_bla bla bla_g 

                تعليق


                • #9
                  لم أفهم بالضبط ماتريد , لكن هذا الأمر :

                  كود:
                  export X=$(cat x.txt | grep -e "begin line2") && sed -e "s/$X/bla bla bla/" x.txt
                  إستبدل السطر كلّه بالجمله ..

                  كود:
                  [[email protected] ~]$ cat x.txt 
                  [COLOR=red]begin line1 line1 line1 end
                  begin line2 line2 line2 end
                  begin line3 line3 line3 end[/COLOR]
                  [[email protected] ~]$ export X=$(cat x.txt | grep -e "begin line2") && sed -e "s/$X/bla bla bla/" x.txt
                  [COLOR=red]begin line1 line1 line1 end
                  bla bla bla
                  begin line3 line3 line3 end[/COLOR]
                  [[email protected] ~]$
                  كتب مفيدة : كتاب لينكس الشامل | دليل المستخدم العربي في أوامر لينكس | مخطوطتك الأولى (script) في الشيل | أوبنتو ببساطة

                  تعليق


                  • #10
                    تقصد:
                    s/^begin line2[^>]*$/bla bla bla/g
                    شكراًَ جزيلاً، نجحت العملية، ولكن! عندما يحتوي السطر تعليمات HTML وتحديداً وسم الإغلاق تفشل العملية!

                    تعليق

                    يعمل...
                    X