ဥပမာအားဖြင့်အဆိုပါ Linux ကို grep စစ်ဌာနချုပ်၏အသုံးပြုမည်

နိဒါန်း

အဆိုပါ Linux ကို grep command ကို input ကို filtering များအတွက်နည်းလမ်းအဖြစ်အသုံးပြုပါသည်။

GREP ကို ​​Global ပုံမှန်ဖော်ပြမှုပရင်တာကိုဆိုလိုတာပါထို့ကြောင့်ထိရောက်စွာအသုံးပြုနိုင်စေရန်အတွက်, သငျသညျ regular expressions ကိုအကြောင်းကိုအချို့သောဗဟုသုတအသိပညာများရှိသည်သငျ့သညျ။

ဤဆောင်းပါး၌, ငါသည်သင် grep command ကိုနားလည်ကူညီပေးပါမည်သည့်ဥပမာတစ်ခုအရေအတွက်ကိုပြသသွားမှာဖြစ်ပါတယ်။

09 ၏ 01

GREP အသုံးပြုခြင်းတစ်ဦးကဖိုင်မှတ်တမ်းခုနှစ်တွင်တစ်ဦးက String သည်ရှာရန်ရန်ကဘယ်လို

အဆိုပါ Linux ကို grep စစ်ဌာနချုပ်။

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

နှုတ်ကပတ်တရားတော် "အဆိုပါ" ခေါင်းစဉ်၌သင်တို့ကိုအောက်ပါ syntax ကိုအသုံးပြုပါမယ်လို့နှင့်အတူအပေါငျးတို့သစာအုပ်များကိုရှာဖွေရန်:

အဆိုပါစာအုပ်များ grep

အောက်ပါရလဒ်များကိုပြန်လာသောလိမ့်မည်:

တစ်ခုချင်းစီကိုအမှု၌, စကားလုံး "အဆိုပါ" မီးမောင်းထိုးပြပါလိမ့်မည်။

"က" အစား၏ခေါင်းစဉ်များထဲမှ "အဆိုပါ" ထို့နောက်သူကပြန်ရောက်ပြီမဟုတ်ဘူးခဲ့မယ်ဆိုရင်ဒါရှာဖွေရေးကိစ္စတွင်အထိခိုက်မခံကြောင်းသတိပြုပါ။

အမှုလျစ်လျူရှုရန်သင့်အားအောက်ပါ switch ကို add နိုင်ပါတယ်:

--ignore-ကိစ္စတွင်စာအုပ်တွေ grep

အောက်မှာဖေါ်ပြတဲ့အတိုင်းကိုလည်းသင် -i switch ကိုသုံးနိုငျ:

စာအုပ်တွေ -i grep

09 ၏ 02

သံခိတ်အသုံးပြုခြင်းတစ်ဦးကဖိုင်မှတ်တမ်းခုနှစ်တွင်တစ်ဦးက String သည်ရှာရန်

အဆိုပါ grep command ကိုအလွန်အစွမ်းထက်သည်။ သငျသညျအကြိုးရလဒျ filter မှနည်းစနစ်ကိုက်ညီပုံစံများစွာသောလူကိုသုံးနိုင်သည်။

ဒီဥပမာထဲမှာ, ငါသုံးပြီးဖိုင်တစ်ဖိုင်ထဲမှာ string ကိုရှာသင်မည်သို့ပြပါလိမ့်မယ် သံခိတ်

သငျသညျအောကျပါအစကော့တလန်ရာအရပျအမညျမြားနှင့်အတူအရပ်တို့ကိုလို့ခေါ်တဲ့ဖိုင်တိုမြင်ယောင်ကြည့်ပါ:

aberdeen

aberystwyth

aberlour

inverurie

inverness

newburgh

အသစ်သောသမင်ဒရယ်

အသစ်က galloway

Glasgow

Edinburgh

သငျသညျနာမ၌ inver နှင့်အတူအပေါငျးတို့သသောအရပ်တို့ကိုမတှေ့ရချင်တယ်ဆိုရင်အောက်ပါ syntax ကိုအသုံးပြုပါ:

* သောအရပ်တို့ကိုမ inver grep

အဆိုပါခရေပွင့ (*) သံခိတ် 0 င်သို့မဟုတ်အများအပြားကိုဆိုလိုတာပါ။ သို့ဖြစ်လျှင်သင်သည် inver ဟုခေါ်ဝေါ်သောအရပ်၌သို့မဟုတ် inverness ဟုခေါ်ဝေါ်သောအရပ်၌ရှိပါကထိုကွောငျ့, နှစ်ဦးစလုံးပြန်ရောက်မည်ဖြစ်သည်။

သငျသညျကိုသုံးနိုင်သည်နောက်ထပ်သံခိတ်ကာလဖြစ်ပါတယ် (။ ) ။ သငျသညျတစ်ခုတည်းစာတစ်စောင်ကိုက်ညီဖို့ဒီကိုသုံးနိုင်သည်။

သောအရပ်တို့ကိုမ inver.r grep

အထက်ပါ command ကို inverurie နှင့် inverary ဟုခေါ်တွင်သောအရပ်တို့ကိုတွေ့ရပါလိမ့်မယ်ဒါပေမယ့်ကိုသာနှစ်ဦးကို r ကိုရဲ့အဖြစ်တစ်ခုတည်းကာလအားဖြင့်ခေါ်လိုက်ပါမယ်အကြားတစျသံခိတ်ရှိနိုငျသောကွောငျ့ invereerie ရှာတွေ့မှာမဟုတ်ဘူး။

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

ဥပမာဒိုမိန်းအမည်များဒီ list ကိုကြည့်

သင်ရုံအောက်ပါ syntax ကို အသုံးပြု. ရှာဖွေနိုင်သူအပေါင်းတို့ကို about.coms ကိုရှာဖွေရန်:

* DOMAINNAME အကြောင်းကို grep *

: စာရင်းကိုအထဲတွင်အောက်ပါနာမကိုအမှီပါရှိသောလျှင်အထက်အမိန့်ပေးပြပ်မယ်လို့

သငျသညျ, ထို့ကွောငျ့, အောက်ပါ syntax ကွိုးစားနိုင်:

grep * about.com DOMAINNAME

အောက်ပါနာမည်တစ်ခုဒိုမိန်းရှိခဲ့သည် မှလွဲ. ဤသည် ok အလုပ်လုပ်မယ်ဆိုတာ:

aboutycom.com

တကယ်ဟူသောဝေါဟာရကိုရှာအောက်ပါအတိုင်းသင် dot လွတ်မြောက်ရန်ဖို့လိုအပ်မယ်လို့ about.com:

\ .com DOMAINNAME အကြောင်းကို grep *

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

ဥပမာ:

grep? ber PLACENAME

အထက်ပါ command ကို aberdeen, aberystwyth သို့မဟုတ်ပင် berwick ပြန်လာလိမ့်မယ်။

09 ၏ 03

grep အသုံးပြုခြင်းအစနှင့်လိုင်း၏အဆုံးမှာ STRING အတွက်ရှာရန်

အဆိုပါကာရက် (^) နှင့်ဒေါ်လာ ($) သင်္ကေတကိုသင်လိုင်းများ၏အစနှင့်အဆုံးတွင်ပုံစံများကိုရှာဖွေခွင့်ပြုသည်။

သငျသညျကိုအောက်ပါအသင်းအမည်များနှင့်အတူဘောလုံးလို့ခေါ်တဲ့ဖိုင်တိုမြင်ယောင်ကြည့်ပါ:

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

grep ^ မန်ချက်စတာအသင်းများ

အထက်ပါ command ကိုမန်ချက်စတာစီးတီးနှင့်မန်ချက်စတာယူနိုက်တက်သို့ပြန်လာပေမယ့်မန်ချက်စတာ၏ယူနိုက်တက် FC မဟုတ်ဘူး။

တနည်းအားဖြင့်သင်သည်အောက်ပါ syntax ကို အသုံးပြု. ယူနိုက်တက်နှင့်အတူအဆုံးသတ်အပေါငျးတို့သအသင်းများကိုရှာတှေ့နိုငျ:

grep ယူနိုက်တက် $ အဖွဲ့များ

အထက်ပါ command ကိုမန်ချက်စတာယူနိုက်တက်နှင့်နယူးကာဆယ်လ်ယူနိုက်တက်ပြန်လာပေမယ့်မန်ချက်စတာ၏ယူနိုက်တက် FC မဟုတ်ဘူး။

09 ၏ 04

grep အသုံးပြုခြင်းကိုက်ညီမှုများအရေအတွက်ရေတွက်

သငျသညျ grep သုံးပြီးပုံစံကိုက်ညီပေမယ့်သင်ရုံသင်အောက်ပါ syntax ကိုသုံးနိုင်သည်ရှိပါတယ်မည်မျှသိလိုကြောင်းအမှန်တကယ်လိုင်းများပြန်လာချင်ကြပါဘူး အကယ်. :

grep -c ပုံစံ inputfile

ပုံစံနှစ်ကြိမ်ထို့နောက်ကိုက်ညီခဲ့သည်ဆိုပါကအရေအတွက်က 2 ပြန်ရောက်မည်ဖြစ်သည်။

09 ၏ 05

grep သုံးပြီးကိုက်ညီမှုမရှိပါအားလုံးသည်အဆိုပါသတ်မှတ်ချက်များကိုရှာဖွေခြင်း

သငျသညျအောကျပါအတိုငျးစာရငျးနိုင်ငံများနှင့်အတူအရပ်ဌာနအမည်များစာရင်းတစ်ခုရှိတယ်ဆိုကြပါစို့:

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

တိုင်းပြည်တစ်ပြည်နှင့်အတူအပေါငျးတို့သသောအရပ်တို့ကိုမရှာသငျသညျအောကျပါအ syntax သုံးလို့ရတယ်:

grep မြေယာ $ သောနေရာများ

ရလဒ်ပြန် colwyn ပင်လယ်အော် မှလွဲ. အားလုံးအရပ်ဖြစ်လိမ့်မည်။

ဒီအသိသာသာ (ခဲသိပ္ပံနည်းကျ) ပွညျ၌အဆုံးသတ်ထားတဲ့နေရာအလုပ်လုပ်ပါတယ်။

သင့်အနေဖြင့်အောက်ပါ syntax အသုံးပြုပြီး select လုပ်ပါပြောင်းပြန်လှန်လိုက်ပါနိုင်သည်

မြေယာ $ သောအရပ်တို့ကိုမ -v grep

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

09 ၏ 06

grep အသုံးပြုခြင်းဖိုင်ထဲမှာ Empty လိုင်းများကိုရှာပါရန်မည်သို့

သငျသညျအောကျပါအတိုငျးကဗလာလိုင်းတွေ့သည့်အခါဖိုင်ဖတ်နေရပ်ထားတဲ့တတိယပါတီလျှောက်လွှာအသုံးပြုသည့် input ကိုဖိုင်တိုမြင်ယောင်ကြည့်ပါ:

လျှောက်လွှာလီဗာပူးပြီးနောက်လိုင်းမှရရှိသွားတဲ့အခါ colwyn ပင်လယ်အော်လုံးဝလွဲချော်နေသည်အဓိပ္ပာယ်ဖတ်နေကိုရပ်တန့်ပါလိမ့်မယ်။

သင့်အနေဖြင့်အောက်ပါ syntax နှင့်အတူအလွတ်လိုင်းများရှာဖွေရန် grep သုံးနိုငျ:

grep ^ $ သောနေရာများ

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

သငျသညျသင်တန်းကိုအောက်ပါအတိုင်းဖိုင်ကိုတရားဝင်သည်ဆိုပါကကြည့်ရှုရန်စစ်ဆေးမှုများအဖြစ်အလွတ်လိုင်းများ၏နံပါတ်တစ်ရေတွက်ရနိုင်

grep -c ^ $ သောနေရာများ

ဒါဟာသို့သော်သင်သည်ထိုသူတို့နေရာတွင်အစားထိုးနိုင်အောင်တစ်ဦးအလွတ်လိုင်းရှိသည်သောလိုင်းနံပါတ်များကိုသိရန်ပိုမိုအသုံးဝင်ပါလိမ့်မယ်။ သင့်အနေဖြင့်အောက်ပါ command နဲ့ပြုပါနိုင်သည်

grep -n ^ $ သောနေရာများ

09 ၏ 07

grep အသုံးပြုခြင်းကြီး၏ Strings ဒါမှမဟုတ်စာလုံးအသေးဇာတ်ကောင်သည်ရှာရန်ရန်ကဘယ်လို

grep အသုံးပြုခြင်းကိုသင်အောက်ပါ syntax ကို အသုံးပြု. ကြီးဇာတ်ကောင်များတဲ့ဖိုင်ထဲမှာထားတဲ့လိုင်းတွေကိုဆုံးဖြတ်ရန်နိုင်သည်

grep '[AZ]' 'ဖိုင်အမည်

အဆိုပါစတုရန်းကွင်းခတ် [] သင်ဇာတ်ကောင်များ၏အကွာအဝေးကိုဆုံးဖြတ်ရန်ကြကုန်အံ့။ အထက်ပါဥပမာမှာသူက A နှင့် Z. အကြားဖြစ်သည့်မဆိုဇာတ်ကောင်ကိုက်ညီ

ထိုကြောင့်သင်သည်အောက်ပါ syntax ကိုသုံးနိုင်သည်စာလုံးအသေးစာလုံးများကိုကိုက်ညီ:

grep '[az]' 'ဖိုင်အမည်

သငျသညျစာလုံးနှင့်မ NUMERIC သို့မဟုတ်အခြားသင်္ကေတများကိုသာကိုက်ညီချင်လျှင်အောက်ပါ syntax ကိုသုံးနိုင်သည်:

grep '[a-zA-Z ကို]' 'ဖိုင်အမည်

အောက်မှာဖေါ်ပြတဲ့အတိုင်းသင်ကဂဏန်းတွေနဲ့အတူတူလုပျနိုငျ:

grep '[0-9]' 'ဖိုင်အမည်

09 ၏ 08

grep အသုံးပြုခြင်းပုံစံများထပ်ကျော့သည်ရှာဖွေနေ

သင်တစ်ဦးပြန်လုပ်ပုံစံများအတွက်ရှာဖွေ curly bracket {} ကိုသုံးနိုင်သည်။

အောက်ပါအတိုင်းသကဲ့သို့သင်တို့ကိုဖုန်းနံပါတ်များကိုအတူဖိုင်တစ်ခုရှိတယ်ဆိုကြပါစို့:

သငျသညျအရေအတွက်ကို၏ပထမအစိတ်အပိုင်းကိုသုံးဂဏန်းဖြစ်ရန်လိုအပ်သည်ကိုသိရန်နှင့် အကယ်. သင်ဤပုံစံမကိုက်ညီပါဘူးသောလိုင်းများကိုရှာဖွေချင်တယ်။

ယခင်ပုံနမူနာကနေသင်တို့ကို [0-9] ဖိုင်တစ်ဖိုင်အားလုံးကိုနံပါတ်များကိုပြန်လာကြောင်းကိုငါသိ၏။

(-) ဒီဥပမာမှာတော့ကျွန်တော်တစ်ဦးတုံးတိုအားဖြင့်နောက်တော်သို့လိုက်သုံးနံပါတ်များနှင့်အတူစတင်ကြောင်းလိုင်းများချင်တယ်။ သင့်အနေဖြင့်အောက်ပါ syntax နဲ့လုပျနိုငျ:

grep "^ [0-9] [0-9] [0-9] -" နံပါတ်များ

ကျနော်တို့ယခင်ဥပမာအနေဖြင့်သိကြသကဲ့သို့ကာရက် (^) ကိုလိုင်းအောက်ပါပုံစံတွေနဲ့စတင်ရမယ်လို့ဆိုလိုပါတယ်။

ဒီက 3 ဂဏန်းကိုက်ညီသုံးကြိမ်ပါဝင်သည်အမျှအဆိုပါ [0-9] 0 နှင့် 9. အကြားမည်သည့်အရေအတွက်ကိုရှာဖွေပါလိမ့်မယ်။ နောက်ဆုံးအနေနဲ့တစ်တုံးတိုသုံးခုနံပါတ်များကိုအောင်မြင်ရမည်ဟုဖျောညှနျးဖို့တုံးတိုရှိသေး၏။

အဆိုပါ curly bracket အသုံးပြုခြင်းအားဖြင့်အောက်ပါအတိုင်းသကဲ့သို့သင်တို့ရှာဖွေရေးသေးငယ်စေနိုင်သည်

grep "^ [0-9] \ {3 \} -" နံပါတ်များ

ဒီဟုဘာပုံမှန်စကားရပ်၏တစ်စိတ်တစ်ပိုင်းအဖြစ်ပေမယ့်အနှစ်သာရအတွက်အလုပ်လုပ်တယ်သို့မှသာအဆိုပါမျဉ်းစောင်း {3} 0 င် 9 သုံးကြိမ်အကြားမည်သည့်အရေအတွက်ကိုဆိုလိုသည် [0-9] က {bracket ကဖြစ်ပါတယ်ရှောင်ကွင်းနိုင်ပါ။

အောက်မှာဖေါ်ပြတဲ့အတိုင်း curly bracket လည်းသုံးနိုင်တယ်:

{5,10}

{5}

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

09 ၏ 09

grep အသုံးပြုခြင်းအခြားတပ်မှူးများကအဆိုပါ Output အသုံးပြုခြင်း

ဤရွေ့ကား, ကျနော်တို့တစ်ဦးချင်းစီဖိုင်တွေအတွင်းကိုက်ညီပုံစံကြည့်ရှုခဲ့ကြပေမယ့် grep ပုံစံကိုက်ညီခြင်းများအတွက် input ကိုကဲ့သို့သောအခြား command တွေကနေအထွက်ကိုသုံးနိုင်သည်။

ဒီတစ်ဦးကအကြီးအဥပမာတက်ကြွဖြစ်စဉ်များ lists သော ps command ကို အသုံးပြု. ဖြစ်ပါတယ်။

ဥပမာအားဖြင့်အောက်ပါ command ကို run:

ps -ef

သင်၏ system ပေါ်တွင်အပြေးဖြစ်စဉ်များအားလုံးသည်ပြသပါလိမ့်မည်။

အောက်မှာဖေါ်ပြတဲ့အတိုင်းသင်တစ်ဦးအထူးသဖြင့်ပြေးဖြစ်စဉ်ကိုရှာ grep သုံးနိုငျ:

ps -ef | grep firefox

အကျဉ်းချုပ်

အဆိုပါ grep command ကိုအခြေခံ Linux ကို command တစ်ခုဖြစ်သည်နှင့်အက terminal ကိုသုံးတဲ့အခါဖိုင်တွေနဲ့လုပ်ငန်းစဉ်များရှာဖွေနေသည့်အခါသူကသင်၏အသက်တာအများကြီးပိုလွယ်စေမည်အဖြစ်သင်ယူရကျိုးနပ်ကြောင်းတစ်ခုဖြစ်ပါသည်။