egrep: GNU / Linux ရှိ command ဥပမာများ

ဥပမာ

grep ၎င်းသည် GNU / Linux command line တွင်အသုံးအများဆုံးကိရိယာတစ်ခုဖြစ်သည်။ အလွန်ရိုးရှင်းသောကိရိယာတစ်ခုဖြစ်သော်လည်း၎င်းသည်သင့်အားလုပ်ငန်းအမြောက်အများကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ ၎င်းသည်အထူးသဖြင့် pipes များနှင့်အတူတကွအသုံးပြုသည်။ ယခင် command ၏ output မှတိကျသောအချက်များကိုရှာဖွေရန်ဖြစ်သည်။ ဒါပေမယ့် egrep လို့ခေါ်တဲ့ tool တစ်ခုရှိတယ်။ အဲဒါကို -E option နဲ့ run နေတယ်။

e သည် "Extended regex" မှဆင်းသက်လာသည်။ ၎င်းသည် -E option ကိုသက်ဝင်လှုပ်ရှားစေပြီး၊ ဥပမာအားဖြင့် egrep တွင်ထို option ကိုအသုံးမပြုဘဲနှင့် egrep တွင်ရှိသည်။ ဆိုလိုသည်မှာသင်သည်သုံးနိုင်သည် ပုံမှန်အသုံးအနှုန်းတွေတိုးချဲ့ခဲ့သည်။ ဒီသင်ခန်းစာမှာ၊ ပုံမှန်အသုံးအနှုန်းတွေ၊ သူတို့ဘယ်လိုသုံးနိုင်တယ်၊ * nix ထဲမှာဘယ်လိုအမျိုးအစားတွေအကြောင်းရှင်းပြဖို့ငါသွားမှာမဟုတ်ဘူး။ egrep နှင့်သင်လုပ်နိုင်သောအသုံးဝင်သောအရာအချို့၏လက်တွေ့ကျတဲ့ဥပမာများကိုသာပြပါမယ်

grep, egrep နှင့် fgrep ဆင်တူသည်။ အမှန်တကယ်တွင် egrep သည် grep -E နှင့်ညီသည်၊ fgrep သည် grep -F နှင့်ညီသည်။ ဆိုလိုသည်မှာကျွန်ုပ်တို့နှင့်သက်ဆိုင်သောကိစ္စများတွင်ပုံစံများကိုပုံမှန်အသုံးအနှုန်းများအဖြစ်အနက်ဖွင့်လိမ့်မည်။

သင်လုပ်နိုင်သည် လိုင်းသို့မဟုတ်စကားလုံးရှာဖွေပါ grep နှင့်အတူတူဖိုင်တစ်ခုသို့မဟုတ်တစ်ခုထက်ပိုသောဖိုင်များတွင်ရှိသည်။ ဥပမာအားဖြင့်၊ ubuntu ဟူသောစကားလုံးကို snap.txt အမည်ရှိဖိုင်တစ်ခုနှင့်လက်ရှိ directory ရှိ .txt ဖိုင်တွဲများတွင်ရှာဖွေလိုသည်ဆိုပါစို့။

egrep ubuntu snap.txt

egrep ubuntu *.txt

ရှာဖွေမှုလည်းဖြစ်နိုင်သည် ကုထုံး လက်ရှိလမ်းညွှန်တစ်ခုလုံးကိုရှာဖွေရန်

egrep -r "hola mundo" *

ယခုအချိန်ထိစာလုံးအကြီးများနှင့်စာလုံးအကြီးအသေးရှာဖွေမှုကိုရှာဖွေသည်။ ဆိုလိုသည်မှာစာလုံးအကြီးနှင့်အသေးကိုသာထည့်။ အက္ခရာအရအရေးယူသည်။ သူတို့စာလုံးကြီးဒါမှမဟုတ်အသေးလျှင်ကိစ္စမရှိ, သင်သည်အောက်ပါကိုသုံးနိုင်သည် (အကယ်၍ ဖြည့်စွက်ပါကပြည့်စုံသောကိုက်ညီမှုသာတွေ့ရှိနိုင်သည်):

egrep -i "ejemplo" documento.txt

egrep -iw "ejemplo" documento.txt

ပြသ, တိုက်ဆိုင်မှုမဟုတ်ပေမယ့်ပြပါ သူတို့အားပွဲစဉ်တွေ့ရှိခဲ့သည်ရှိရာဖိုင်အမည်များ:

egrep -l hola *.txt

ပုံစံသို့မဟုတ်စကားလုံးကိုသာပြပါ စာရွက်စာတမ်းတစ်ခုအတွင်းရှာဖွေခဲ့သည်

egrep -o printf hola.c

သင်စိတ်ကူးနိုင်သမျှဖြစ်နိုင်သမျှကိုသုံးနိုင်သည်ကိုသတိရပါ။ သင်ယခင်ကမြင်တွေ့ခဲ့ဖူးသည့်ရွေးချယ်မှုများစွာကိုပေါင်းစည်းနိုင်သည်၊ သို့မဟုတ်သူတို့ကိုအခြားရွေးချယ်စရာများဖြစ်သည့် -An နှင့် -B n, где n သင်မတိုင်မီ (မတိုင်မီ) နှင့်ပြီးနောက် (ပြီးနောက်) တွင်သင်ပြလိုသည့်စာကြောင်းအရေအတွက်။ ပွဲစဉ် (သို့) နှစ်ခုလုံးကိုတစ်ချိန်တည်း (ဂ) အရကစားပွဲတွင်အဘယ်အရာပါဝင်သည်ကိုသင်မြင်နိုင်ရန်။

egrep -A 2 "printf" hola.c

egrep -B 2 "printf" hola.c

egrep -C 2 printf hola.c

ကိုက်ညီမှုပါ ၀ င်သည့်လိုင်းများကိုဖိပြီးမတိုက်ဆိုင်သောအရာများကိုသာပြပါ။

egrep -v "dos" números.doc

သို့မဟုတ်သင်ကြိုက်ပါကသင်အသုံးပြုနိုင်သည် စကားလုံးသို့မဟုတ်စကားလုံးမျိုးစုံဖြင့်ဖော်ပြသည်။ ဥပမာ:

egrep -v -e "uno" -e "dos" -e "tres" números.txt

သင်သုံးလျှင် -c သည်ပွဲအရေအတွက်ကိုသာရေတွက်နိုင်သည်သို့မဟုတ်မတူညီသောမျဉ်းကြောင်းများကိုပြရန် -v ဖြင့်ပြောင်းပါ။ ဥပမာ:

egrep -c "include" main.c

egrep -v -c "include" main.c

ထိုအပင် လိုင်းနံပါတ်ကိုပြပါ ပွဲစဉ်ဖြစ်သည့်နေရာနှင့်၎င်းနေရာအသီးသီးသည်နေရာအသီးသီးတွင် -

egrep -n "void" hola.c

egrep -o -b "printf" hola.c

ထိုအခါနှင့်အတူ ပုံမှန်အသုံးအနှုန်းတွေ ၎င်း၏စွမ်းရည်ကိုတိုးချဲ့နိုင်ပါတယ်။ ဥပမာအားဖြင့်၊ Hello နှင့်စတင်သော bye ဖြင့်အဆုံးသတ်သောမျဉ်းကြောင်းကိုရှာပါ။ သို့မဟုတ်ပါက Hello နှင့်အတူစတင်သည်။ ထို့နောက် လိုက်၍ match bye အသီးသီးပေါ်လာလိမ့်မည်။

* အောက်ပါ command ကိုပြင်ဆင်ခြင်း - စာဖတ်သူ Manuel Alcocer ၏မှတ်ချက်ကြောင့်အမှားတစ်ခုကြောင့်ငါအောက်ပါ command ကိုပြုပြင်နိုင်သည်။

egrep '^Hola.*adiós$' ejemplo.txt

egrep "Hola.*adiós" ejemplo.txt

ဒါပေမယ့် grep နဲ့ကွာခြားချက်ကိုသင်စဉ်းစားမိရင်ဥပမာတစ်ခုကိုဒီမှာရှင်းရှင်းလင်းလင်းပြပါလိမ့်မယ် ... grep မပါတဲ့ -E ကိုသုံးမယ်ဆိုရင်… ထွက်ပေါက်ပာ အထူးအက္ခရာများကိုဖွင့်ဆိုနိုင်အောင်၊ အက္ခရာများကိုထည့်သွင်းစဉ်းစားခြင်းမရှိပဲထိုသို့အနက်ဖွင့်နိုင်သည်။ အခြားတစ်ဖက်တွင် egrep or grep -E သည်၎င်းကိုထည့်သွင်းစဉ်းစားလိမ့်မည်။ ဥပမာ:
grep '^no\(fork\|group\)' /etc/group

ဒါကညီမျှလိမ့်မယ်

grep -E '^no(fork|group)' /etc/group
egrep '^no(fork|group)' /etc/group

ဆိုလိုသည်မှာ nofork (သို့) nogroup နှင့်စတင်သည့်တိုက်ဆိုင်သည့်လိုင်းများကိုရှာဖွေလိမ့်မည်။ အကယ်၍ သင်သည် grep ၏ပထမဆုံးဖော်ပြချက်ကို escape sequence များမပါရှိပါကရှာဖွေခြင်းသည်၎င်းကိုပြုလုပ်လိမ့်မည် ကွန်ကရစ်ပုံစံ မဟုတ်ဘူး (fork | group):

grep 'no(fork|group)' /etc/group

သင်ရှာဖွေနိုင်သည် အက္ခရာနံပါတ်သို့မဟုတ်အချို့သော IP များကိုရှာဖွေရန်ကဲ့သို့သောတန်ဖိုးများ -
cat /etc/networks | egrep "192.168.1.[5-9]"
cat /etc/networks | egrep "192.168.[1-3].[5-9]"
cat /etc/networks | egrep "192.168.1.[0-3]|[5-9]"
egrep 192.168.4.[10,40] networks

သင်ပိုမိုနှစ်သက်ပါကပိုမိုတိကျသောရှာဖွေမှုများကိုပြုလုပ်ရန်အခြားပုံမှန်အသုံးအနှုန်းများကိုသုံးနိုင်သည်။ ဥပမာ တစ်ခုရှာရန် တိုက်ဆိုင်မှုသို့မဟုတ်အခြား:

egrep -i '^(printf|scanf)' hola.c

သင်ပင်နေရာချထားနိုင်သည် စာလုံးအကြီးအသေး၊ အသေးစာလုံးအသေး၊အခြားအသုံးအနှုန်းများဖြစ်သော: [: alnum:], [: alpha:], [: digit:], [: lower:], [: print:], [: punct:], [: space:], [: အပေါ်:]၊ ဥပမာ - စာလုံးကြီးကိုရှာဖွေရန် -
egrep [[:upper:]] diccioario

ငါကမင်းကိုကူညီလိမ့်မယ်လို့မျှော်လင့်ပါတယ်။ မကြာခင်မှာပဲပုံမှန်အသုံးအနှုန်းတွေကိုအထူးဆောင်းပါးတစ်ပုဒ်မှာရှင်းပြတော့မယ်။


ဆောင်းပါး၏ပါ ၀ င်မှုသည်ကျွန်ုပ်တို့၏အခြေခံမူများကိုလိုက်နာသည် အယ်ဒီတာအဖွဲ့ကျင့်ဝတ်။ အမှားတစ်ခုကိုသတင်းပို့ရန်ကလစ်နှိပ်ပါ ဒီမှာ.

5 မှတ်ချက်များ, သင့်စွန့်ခွာ

သင်၏ထင်မြင်ချက်ကိုချန်ထားပါ

သင့်အီးမေးလ်လိပ်စာပုံနှိပ်ထုတ်ဝေမည်မဟုတ်ပါ။ တောင်းဆိုနေတဲ့လယ်ယာနှင့်အတူမှတ်သားထားတဲ့ *

*

*

  1. အချက်အလက်အတွက်တာဝန်ရှိသည် - Miguel ÁngelGatón
  2. အချက်အလက်များ၏ရည်ရွယ်ချက်: ထိန်းချုပ်ခြင်း SPAM, မှတ်ချက်စီမံခန့်ခွဲမှု။
  3. တရားဝင်: သင်၏ခွင့်ပြုချက်
  4. အချက်အလက်များ၏ဆက်သွယ်မှု - ဒေတာများကိုဥပဒေအရတာ ၀ န်ယူမှုမှ လွဲ၍ တတိယပါတီများသို့ဆက်သွယ်မည်မဟုတ်ပါ။
  5. ဒေတာသိမ်းဆည်းခြင်း: Occentus ကွန်ယက်များ (အီးယူ) မှလက်ခံသည့်ဒေတာဘေ့စ
  6. အခွင့်အရေး - မည်သည့်အချိန်တွင်မဆိုသင်၏အချက်အလက်များကိုကန့်သတ်၊

  1.   Manuel Alcocer နေရာချထားပုံ ဟုသူကပြောသည်

    ကောင်းသောနေ့လည်ခင်း။

    မှတ်ချက်အနည်းငယ် ...

    သင်သည် 'egrep' command ကိုရှင်းပြပြီးသော်လည်း 'egrep' နှင့် 'grep' အကြားခြားနားချက်ကိုမထည့်ပါနှင့်၊

    ဥပမာ:
    grep နှင့်အတူ: ip -4 က | grep '[0-9] \ +'
    egrep နှင့်အတူ: ip -4 a | egrep '[0-9] +'

    Ahh၊ ဒါမှားတယ် 'egrep "Hello ။ * Bye" example.txt'; ဖိုင်ထဲမှာ 'Hello' ဆိုတဲ့ string ပါပြီးနောက်မှာဘာဖြစ်မလဲနောက် 'goodbye' နောက်မှာလိုက်ရင် line ကဘာပဲဖြစ်ဖြစ်အဆုံးသတ်နိုင်မှာပါ။

    ဤဆောင်းပါးကပြောဆိုသည်မှာ -
    egrep '^ မင်္ဂလာပါ။ * bye $' example.txt

    ထိုအခွင့်အလမ်းများအားလုံး (သို့) အားလုံးနီးပါး (ကျွန်ုပ်မစစ်ဆေးနိုင်တော့ပါ) သည် 'egrep' မဟုတ်ပဲ 'grep' ၏ရွေးချယ်မှုများသာဖြစ်သည်။

    အကောင်းဆုံးပတ်သတ်ပြီး။

    1.    ဣဇာက်သည် ဟုသူကပြောသည်

      ဒီအမှားကိုအစီရင်ခံတဲ့အတွက်ကျေးဇူးတင်ပါတယ် ပုံမှန်အသုံးအနှုန်းတွေနဲ့ပတ်သက်ပြီးမင်းမှတ်ချက်ပေးတာကိုငါဒုတိယစာပိုဒ်မှာထားပြီးပြီ။ ငါကသူတို့ကိုသတ်သတ်မှတ်မှတ်ဆောင်းပါးတစ်ခုဆက်ကပ်အပ်နှံပါလိမ့်မယ်ဘာဖြစ်လို့လဲဆိုတော့များစွာသောဤဆောင်းပါးရှည်လျားလွန်းလိမ့်မယ်။ နှုတ်ဆက်ခြင်း!

      1.    Manuel Alcocer နေရာချထားပုံ ဟုသူကပြောသည်

        ဟဲဟဲ။

        ဒုတိယစာပိုဒ်တွင် 'egrep' သည် 'grep -E' ၏ alias တစ်ခုဖြစ်သည်ဟုပြောသင့်သည်၊ သို့မဟုတ်ပြောသင့်သည်၊ သို့သော် 'egrep' ကိုသုံးသောအသုံးအနှုန်းနှင့်ကွဲပြားခြားနားစွာရေးထားသောပုံမှန်အသုံးအနှုန်းနှင့် ပတ်သက်၍ ဥပမာမပြပါ grep '။

        တိုးချဲ့ထားသောပုံမှန်အသုံးအနှုန်းများကိုရှင်းပြရန်ဆောင်းပါးတစ်ပုဒ်ကိုရည်စူးခြင်းသည်အခြားအရာများအပြင်ကျွန်ုပ်အတွက်ရဲရင့်ဟန်ရှိသည်၊ အဘယ်ကြောင့်ဆိုသော်ဤကဲ့သို့သောဆိုဒ်များမှာကြော်ငြာမထားသည့်အပြင် GNU အသိုင်းအဝိုင်းအတွက်အလွန်အရေးကြီးသောသတင်းအချက်အလက်များကိုလုပ်ဆောင်နေကြသည်။ https://www.rexegg.com/

        trolling အတွက်စာရေးခြင်းမဟုတ်ပါ။ ဤအရာအားလုံးနှင့် ပတ်သက်၍ ကျွန်ုပ်၏ရည်ရွယ်ချက်မှာ 'egrep' သို့မဟုတ် 'grep' ၏လုပ်ဆောင်မှုကိုကြည့်ရှုရန်တစ်စုံတစ် ဦး ကဤ entry ကိုဖတ်ပါကအခြားရင်းမြစ်များကိုကြည့်ပါ၊ , အလွန်အကျွံသတင်းအချက်အလက်ကမ်းလှမ်းခြင်းနှင့်ရှုပ်ထွေးနိုင်ပါတယ်, အထူးသဖြင့် GNU နှင့်သူကကမ်းလှမ်းအစွမ်းထက် tools တွေကိုမသိသောသူတို့အဘို့။

        နောက်ဆုံးသင်မှတ်ချက်ပေးပြီးနောက် (^ $) ပြီးနောက်ငါဖော်ပြခဲ့သော bug ကိုသင်ထည့်ပြီးပြင်ဆင်လိုက်ပြီ။ အခြားဆိုဒ်များကဲ့သို့ပင်၊ ပြင်ဆင်မှုပြုလုပ်သူကိုသင်ကိုးကားသင့်သည် (သို့) အနည်းဆုံး၎င်းသည်ပြင်ဆင်မှုဖြစ်သည်ဟုပြောသင့်သည်၊ ၎င်းသည် GNU အခြေပြု၏အစိတ်အပိုင်းဖြစ်သည်၊ ဤဘလော့ဂ်ကိုစတင်ခဲ့ခြင်းနှင့်အတူတူပင်အခြေစိုက်စခန်းဖြစ်သည် ရှုံး

        တစ်ဦးကမေတ္တာနှင့်ကြားလိုက်ပါ၏။

        1.    ဣဇာက်သည် ဟုသူကပြောသည်

          သင့်ရှုထောင့်အတွက်ကျေးဇူးတင်ပါတယ်

  2.   fsafs ဟုသူကပြောသည်

    နေပြည်တော်