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

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

شرح الأمر cut بالتفصيل الممل + أمثلة عليه

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

  • شرح الأمر cut بالتفصيل الممل + أمثلة عليه

    السلام عليكم ورحمة الله وبركاته


    أخوتي بالله اليوم أعود بدرس سريع للغاية وهو إستجابة لرغبة أخوي أبو عمر. لذا أرجوا ان يقبله مني كهدية بسيطة ومتواضعة عسى أن تفيده في عمله وإحتياجاته, وأيضاً عسى أن تفيدكم أنتم أخوتي بالله أيضاً. الدرس هو عن الأمر cut والذي هو مثل الأمر sort لكن ما يقوم به هذا الأمر في حقيقة الأمر هو إنه يأخذ مقطع عامودي من الملف الذي ترسله له كمعطيات. فائدته كما قلت هو أن يأخذ مقطع طولي من ملف وذلك لكي تعمل أن فلترة مثلاً لأمور حسابية ولأمور توضيحية أنت في حاجة لها. طبعاً الأمر هذا يعتبر الفارغ بين الكلمات في الملفات هو الفاصل والذي يمكن أن يعتبره هو نهاية حقل وبداية حقل جديد, يعني لننظر الى محتوى الملف التالي companydb.txt:
    كود:
    406378:Sales:Ali:Jan
    031762:Marketing:Nasim:Feb
    636496:Research:Omar:Mar
    396082:Sales:Ahmed:Jan
    هذا ملف مفصل محتوياته الى التالي:
    • رقمه الوظيفي
    • أسم القسم
    • أسم الموظف
    • التاريخ

    الآن لنفرض أنت تريد أن تستخرج من هذا الملف فقط أسم الموظف من داخل هذا الملف, فعليك أن تفعل التالي:
    كود:
    cut -d: -f3 companydb.txt
    سيقوم هذا الأمر بأخذ delemeter أي الفاصل على إنه علامة ":" وليس الفراغ وأيضاً أخبرناه بإننا نريد العامود الثالث فقط. لذلك سيكون الناتج كالتالي:
    كود:
    Ali
    Nasim
    Omar
    Ahmed
    الآن لنفرض إننا نريد أن نستخرج فقط العامود الأول الذي فيه أول رقم من رقم الموظف + نستخرج أول حرف من أسم القسم الذي يعمل به الموظف نعمل كالتالي:
    كود:
    cut -c1,8 companydb.txt
    وسيكون الناتج كالتالي:
    كود:
    S4
    M0
    R6
    S3
    أذا تريد أن تستخرج فقط العامود الأول الذي هو أول رقم من رقم الموظف الوظيفي فقط غيره الى التالي:
    كود:
    cut -c1 companydb.txt
    اللآن لنفرض إنك تريد أن تطبع أسم ورقم الموظف فقط, نعمل كالتالي:
    كود:
    cut -d: -f1,3 companydb.txt
    الى هنا أتي الى نهاية الدرس أرجوا أن ينال رضاكم وإعجابكم جميعاً وأرجوا أن يفيد أخونه أبو عمر في مختبراته العلمية . وأي سؤال حول هذا الأمر وخواص أخرى له إن شاء الله أنا مستعد للإجابة عليها;) . حياكم الله جميعاً وسلامي الحار لكم جميعاً
    إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

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

    [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]


  • #2
    السلام عليكم هلا أخي أبو عمر حياك الله وأليك الرد على اسئلتك:
    1) في حالة كون الفواصل شي غير علامة ":" لنأخذ مثال:
    كود:
    406378,Sales,Ali,Jan
    031762,Marketing,Nasim,Feb
    636496,Research,Omar,Mar
    396082,Sales,Ahmed,Jan
    وتريد أن تأخذ الحقل الثالث منه فعليك بفعل التالي:
    كود:
    cut -d, -f3 companydb.txt
    أذن نستنتج أخي إنه في حالة كانت الفاصلة عندك شي غير ال : نضعها بعد ال ,d-
    2) لنفرض إنك تريد أن تخزن ناتج القيمة السابقة في ملف كل ما عليك فعله هو عمل redirection الى الملف الجديد, يعني بدل من إخراج النواتج الى الشاشة stdoutput أخرجها الى ملف من خلال التالي:
    كود:
    cut -d, -f3 companydb.txt >> file1.txt
    3) هل تريده أخي من خلال الأمر cut أم من خلال أمر أخر ؟ لأنه ممكن تعمله من خلال أمر الطباعة على ما أذكر !! أخبرني لكي أضع أبحث لك عن الحل.
    أخوك بالله علي
    إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

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

    [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

    تعليق


    • #3
      جزاك الله خير يا بو محمد
      انا قصدي لا يوجد كركتر بين الحقول انما مسافة خالية بمعنى

      كود:
      name    number    age
      ahmed        1234       30
      والشي الثاني هاذي الطريقة تاخذ المعلومات من الاعمدة، بمعنى
      اني اذا حبيت احدد عدد معين من السطور وعدد معين من الاعمدة
      مثال :- من السطر 1 الى 20 من العمود 1 الى العمود 20
      كيف اعمل الطريقة اذا كانت ممكنة؟
      اخوك ابو عمر



      السلام عليكم أخوي أبو عمر
      بالنسبة الى الفراغات تعمل التالي:
      كود:
      cut -d' ' -f1 companydb.txt
      أما بخصوص الطلب الثاني يا بو عمر والله للحين مو ﻻقي حل يا رجال أنت شكلك قلبت اللينكس SQL فعلا شيء يدوخ لكن أصبر يا طيب بلكي لقيت لك حل ;)
      أخوك علي



      هذا أيضا ما دار بيني وبين أخونه أبو عمر oradev أيام عرب نيكس ...
      إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

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

      [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

      تعليق


      • #4
        بارك الله فيك .. مجهود عظيم ..
        GCS

        تعليق


        • #5
          موضوع مفيد فعلاً و cut ليها فوايد كبيرة..

          بالنسبة للسؤال بتاع الأخ أوراديف..


          مثلاً عندنا 3 عواميد كل واحد فيه 40 سطور و أنت عايز أول3 عواميد و اول 3 سطور..

          بشكل أوضح..

          echo name number age
          echo ahmed 1234 30
          echo Ali 111 80
          echo sofy 0 90
          sh | awk -F: '{print $1}' | head -n 3

          دا اللى فهمته من طلب الأخ أوراديف...


          و ألف شكر ياريس على الشرح .
          My-LiFe My Blog
          أنتظروا ثلاثة مفاجئات قريباً..
          I'm GONE !...WITHOUT h3h3!

          تعليق


          • #6
            السلام عليكم ورحمة الله وبركاته ...
            مشكورين يا شباب على المرور ... ومشكور أخوي سفاح على الأضافة الجميلة ... نتمنى من الجميع أن تشارك بأضافات أخرى في الموضوع ...
            إِنَّمَـا الأُمَـمُ الأَخْـلاقُ مَا بَقِيَـتْ ... فَـإِنْ هُمُ ذَهَبَـتْ أَخْـلاقُهُمْ ذَهَبُـوا

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

            [ مواقع مفيدة: أروع موقع القرآن الكريم |مدونتي |Twitter |نظام طارق ]

            تعليق


            • #7
              السلام عليكم
              اخى [email protected] يمكنك فعل هذا بإستخدام الأمر sed
              الامر sed هو اختصار للجملة (stream editor)
              وهو يمكنك من استخراج عدد معين من الأسطر ثم بعد ذلك قم بتمرير النتيجة الى الأمر cut
              وهذا مثال سريع على ما اقصده
              sed -n "3~7p" companydb.txt | cut -d' ' -f"1,4"

              حيث سوف يتم استخراج الاسطر من 3 الى 7 ثم تمرير النتيجة الى الامر cut الذى بدورة
              سوف يقوم بعرض الحقول 1 و4

              تعليق


              • #8
                هل يمكن استخلاص صفوف مثلا

                كود:
                [email protected]:/home/ahmed#  nmap -sP 10.100.2.177-255 | cut -d ' ' -f 2
                
                Nmap
                10.100.2.177
                Address:
                10.100.2.178
                Address:
                10.100.2.179
                Address:
                10.100.2.180
                Address:
                10.100.2.183
                Address:
                10.100.2.187
                done:
                اريد ان استخلص الصفوف اللتي تحتوي الايبيهات فقط ؟؟؟؟

                تعليق


                • #9
                  تسلم الأيادي أبو محمد

                  و اسمحلي أجاوب على قدر ما أقدر على حبيبنا ...

                  هل يمكن استخلاص صفوف مثلا
                  في الصفوف استخدم الأمر

                  كود PHP:
                  head -
                  للمزيد عن الأمر

                  كود PHP:
                  head --help 
                  أو

                  كود PHP:
                  man head 
                  اريد ان استخلص الصفوف اللتي تحتوي الايبيهات فقط ؟؟؟؟
                  كود PHP:
                  nmap -sP 10.100.2.177-255 cut -' ' -f 2 grep "10" 
                  تحياتي و احترامي
                  مـدونـتي الـتقـنـيـة

                  サブリ

                  مــا خِفتُ المـوتَ ولا عُـقبــاهُ ,,, فما أعظمَ شأنهُ غيرَ مولاهُ
                  أهوِن بما في الموتِ من حدثٍ ,,, غـــيــرَ أن بـــهِ الله ألقــاهُ

                  خارج الخدمة


                  تعليق

                  يعمل...
                  X