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

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

استفسار عن تطبيق لبرنامج sed ضمن الباش شيل

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

  • استفسار عن تطبيق لبرنامج sed ضمن الباش شيل

    كما في العنوان

    لدي طلب و هو أنني أريد كتابة شيل يقوم بتعديل الملف m.txt

    محتويات الملف :

    كود:
    x=1
    y=2
    أريد كتابة سكربت كما يلي :

    كود:
    echo "please Insert New X Value"
    read $x
    echo "please Insert New Y Value"
    read $y
    مطلوب اضافة أمر إلى السكربت السابق يقوم بتعديل القيمتين x و y داخل الملف m.txt و يستبدلها بالقيم التي ادخلها المستخدم أعلاه و شكراً

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

  • #2
    كود:
    #! /bin/bash
    # rect-area.sh : a script to find area of rectangle
    echo -n "Enter width: "
    read width
    echo -n "Enter height: "
    read height
    area=`expr $width '*' $height`
    echo "Area of rectangle=${width}x${height}=$area"

    تعليق


    • #3
      عزيزي المشرف ، أشكر لك المشاركة

      و لكن ما علاقة السكربت أعلاه بأمر Sed ؟؟

      ثم إن السكربت أعلاه يقوم بطباعة النتيجة و ليس حفظها إلى ملف

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

      تعليق


      • #4
        عندي استفسار إضافي يا شباب

        أريد سطر برمجي أستطيع عن طريق إدراجه في الشل أن أقوم بفتح بورت معين في الجدار الناري

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

        تعليق


        • #5
          كود:
          #! /bin/bash
          # rect-area.sh : a script to find area of rectangle
          echo -n "Enter width: "
          read width
          echo -n "Enter height: "
          read height
          area=`expr $width '*' $height`
          echo "Area of rectangle=${width}x${height}=$area" >> m.txt
          اضف للسطر اﻻخير مسار الملف
          >> m.txt

          تعليق


          • #6
            ربما لم افهم سؤالك بالزبط، لكن اذا كان قصدك استبدال الكلمة $x بالكلمة $y فهذا هو الأمر:

            كود:
            sed -e 's/$x/$y/g' m.txt
            طبعا الg option لكي يغير كل ظهور للكلمة $x بالكلمة $y في المستند ككل وليس فقط أول ظهور للكلمة على سطر ما...
            V.I.P

            (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
            هود 115

            Linux is user-friendly, but it happens to be selective about its friends

            "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


            مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


            تعليق


            • #7
              المشاركة الأصلية بواسطة GreyHunter مشاهدة المشاركة
              ربما لم افهم سؤالك بالزبط، لكن اذا كان قصدك استبدال الكلمة $x بالكلمة $y فهذا هو الأمر:

              كود:
              sed -e 's/$x/$y/g' m.txt
              طبعا الg option لكي يغير كل ظهور للكلمة $x بالكلمة $y في المستند ككل وليس فقط أول ظهور للكلمة على سطر ما...
              لا أخي ليس هذا هو قصدي

              هناك ملف محتوياته

              x=1
              y=2

              أريد من السكربت استبدالها بالقيم التي يدخلها المستخدم ل x$ و $y

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

              تعليق


              • #8
                المشاركة الأصلية بواسطة PrivacyCO مشاهدة المشاركة
                لا أخي ليس هذا هو قصدي

                هناك ملف محتوياته

                x=1
                y=2

                أريد من السكربت استبدالها بالقيم التي يدخلها المستخدم ل x$ و $y

                و الف شكر لك و للمشرف الغالي drakx
                ممكن مثال او يا ريت المثال بالكامل وبالتفصيل.. لأني مش فاهم قصدك x عبارة عن قيمة عددية؟؟ هل تقصد فيه متغير ام ثابت؟؟
                V.I.P

                (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                هود 115

                Linux is user-friendly, but it happens to be selective about its friends

                "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


                مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                تعليق


                • #9
                  المشاركة الأصلية بواسطة PrivacyCO مشاهدة المشاركة
                  عندي استفسار إضافي يا شباب

                  أريد سطر برمجي أستطيع عن طريق إدراجه في الشل أن أقوم بفتح بورت معين في الجدار الناري

                  و شكراً لكم
                  لا تنسوا هذا الأمر

                  بارك الله فيكم
                  لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

                  تعليق


                  • #10
                    المشاركة الأصلية بواسطة GreyHunter مشاهدة المشاركة
                    ممكن مثال او يا ريت المثال بالكامل وبالتفصيل.. لأني مش فاهم قصدك x عبارة عن قيمة عددية؟؟ هل تقصد فيه متغير ام ثابت؟؟
                    أخي أقصد الآن لدي ملف m.txt

                    محتوياته كما يلي :
                    كود:
                    x=1
                    y=2
                    الآن أريد كتابة سكربت

                    هذا هو السكربت :

                    كود:
                    echo "please Insert New X Value"
                    read $x
                    echo "please Insert New Y Value"
                    read $y
                    sed 's/1/$x/' > m.txt
                    sed 's/2/$y/' > m.txt
                    echo "Done !"

                    المطلوب تصحيح امر sed في الكود السابق لأنه لا يعمل

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

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة PrivacyCO مشاهدة المشاركة
                      أخي أقصد الآن لدي ملف m.txt

                      محتوياته كما يلي :
                      كود:
                      x=1
                      y=2
                      الآن أريد كتابة سكربت

                      هذا هو السكربت :

                      كود:
                      echo "please Insert New X Value"
                      read $x
                      echo "please Insert New Y Value"
                      read $y
                      sed 's/1/$x/' > m.txt
                      sed 's/2/$y/' > m.txt
                      echo "Done !"

                      المطلوب تصحيح امر sed في الكود السابق لأنه لا يعمل

                      اتمنى ان تكون الفكرة قد وصلت
                      غير السطرين التاليين
                      sed 's/1/$x/' > m.txt
                      sed 's/2/$y/' > m.txt

                      الى :

                      sed -e 's/1/$x/' m.txt > text.txt
                      sed -e 's/2/$y/' text.txt >m.txt
                      rm -f text.txt
                      V.I.P

                      (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                      هود 115

                      Linux is user-friendly, but it happens to be selective about its friends

                      "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


                      مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة GreyHunter مشاهدة المشاركة
                        غير السطرين التاليين
                        sed 's/1/$x/' > m.txt
                        sed 's/2/$y/' > m.txt

                        الى :

                        sed -e 's/1/$x/' m.txt > text.txt
                        sed -e 's/2/$y/' text.txt >m.txt
                        rm -f text.txt
                        أخي سامر أشكر لك المشاركة

                        لقد قمت بالتطبيق

                        بحيث أصبح هذا هو السكربت


                        كود:
                        echo "Please Enter New X"
                        read $x
                        echo "Please Enter New Y"
                        read $y
                        sed -e 's/1/$x/' m.txt > text.txt
                        sed -e 's/2/$y/' text.txt >m.txt
                        rm -f text.txt
                        echo "Done ! "

                        و لكن للأسف أن النتيجة كانت كالتالي :

                        كود:
                        [root@box ~]# cat m.txt
                        x=$x
                        y=$y
                        فمالعمل ؟
                        لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

                        تعليق


                        • #13
                          عزرا للتاخير :}
                          [/code]sed '/x=/s'/\[0-9\]/$x/g'[code]
                          tell me what has happen
                          BOOOF , I AM GONE
                          Still , you gotta wait for my PRESENT :D
                          C programming arabic Tutorial|Programming-fr34ks

                          تعليق


                          • #14
                            المشاركة الأصلية بواسطة St0rM-MaN مشاهدة المشاركة
                            عزرا للتاخير :}
                            [/code]sed '/x=/s'/\[0-9\]/$x/g'[code]
                            tell me what has happen
                            حياك أخي

                            أصبح الكود كما يلي :

                            كود:
                            echo "Please Enter New X"
                            read $x
                            echo "Please Enter New Y"
                            read $y
                            #sed -e 's/1/$x/' m.txt > text.txt
                            #sed -e 's/2/$y/' text.txt >m.txt
                            #rm -f text.txt
                            sed '/x=/s'/\[0-9\]/$x/g'
                            sed '/y=/s'/\[0-9\]/$y/g'
                            echo "Done ! "
                            و النتيجة كما يلي :

                            كود:
                            Please Enter New X
                            44
                            Please Enter New Y
                            55
                            sed: -e expression #1, char 37: unterminated `s' command
                            Done !
                            و الملف على حاله

                            مالعمل ؟ ؟

                            مع العلم أن المتغير الذي سأدخله ممكن يشمل حروف و رموز أيضاً !

                            بارك الله فيك
                            لا تصطد لي سمكة ، بل علمني كيف اصطاد سمكة :wink:

                            تعليق


                            • #15
                              كود:
                              sed '/x=/ s/\[a-z-0-9\]/$x/g'
                              طب شوف ده !!
                              جرب تراجع موضوعي
                              BOOOF , I AM GONE
                              Still , you gotta wait for my PRESENT :D
                              C programming arabic Tutorial|Programming-fr34ks

                              تعليق

                              يعمل...
                              X
                              😀
                              🥰
                              🤢
                              😎
                              😡
                              👍
                              👎