Matumizi ya Mfano wa Amri ya Linux Grep

Utangulizi

Amri ya Linux grep hutumiwa kama njia ya kufuta pembejeo.

GREP inasimama kwa Printer ya Kimataifa ya Ufafanuzi wa Mara kwa mara na kwa hiyo ili uitumie kwa ufanisi, unapaswa kuwa na ujuzi fulani juu ya maneno ya kawaida.

Katika makala hii, nitakuonyesha mifano kadhaa ambayo itasaidia kuelewa amri ya grep.

01 ya 09

Jinsi ya Kutafuta Kamba Katika Faili Kutumia GREP

Amri ya grep ya Linux.

Fikiria una faili ya maandishi inayoitwa vitabu na majina ya kitabu cha watoto zifuatazo:

Ili kupata vitabu vyote kwa neno "The" katika kichwa ungependa kutumia syntax ifuatayo:

grep Vitabu

Matokeo yafuatayo yatarejeshwa:

Katika kila kesi, neno "The" litaelezwa.

Kumbuka kwamba utafutaji ni nyeti ya kesi hivyo ikiwa moja ya majina yalikuwa na "badala" badala ya "Ya" basi haikutarejeshwa.

Kupuuza kesi unaweza kuongeza kubadili zifuatazo:

grep vitabu - caseignore-kesi

Unaweza pia kutumia -i kubadili kama ifuatavyo:

grep -i vitabu

02 ya 09

Kutafuta Kamba Katika Faili Ili Kutumia Wildcards

Amri ya grep ni nguvu sana. Unaweza kutumia mbinu nyingi zinazofanana zinazohusiana na kufuta matokeo.

Katika mfano huu, nitakuonyesha jinsi ya kutafuta kamba katika faili kwa kutumia wildcards .

Fikiria una faili inayoitwa mahali na majina ya mahali ya Scottish yafuatayo:

aberdeen

aberystwyth

upungufu

inverurie

inverness

newburgh

jitihada mpya

galloway mpya

glasgow

edinburgh

Ikiwa unataka kupata maeneo yote kwa inver kwa jina kutumia syntax ifuatayo:

maeneo ya gorofa *

Thesterisk (*) wildcard inasimama kwa 0 au wengi. Kwa hiyo ikiwa una nafasi inayoitwa inver au mahali inayoitwa inverness basi wote watarejeshwa.

Mwingine mwitu unaweza kutumia ni kipindi (.). Unaweza kutumia hii kufanana na barua moja.

gia za inver.r maeneo

Amri ya hapo juu ingeweza kupata maeneo inayoitwa inverurie na inverary lakini haipatikani invereerie kwa sababu kunaweza tu kuwa na msiba mmoja kati ya r mbili kama ilivyoelezwa na kipindi kimoja.

Kipindi cha wildcard ni muhimu lakini inaweza kusababisha matatizo ikiwa una moja kama sehemu ya maandishi unayotafuta.

Kwa mfano angalia orodha hii ya majina ya kikoa

Ili kupata kuhusu.com.coms unaweza kutafuta tu kwa kutumia syntax ifuatayo:

grep * kuhusu domainnames

Amri ya hapo juu ingeanguka chini ikiwa orodha ilikuwa na jina zifuatazo ndani yake:

Kwa hivyo, unaweza kujaribu syntax ifuatayo:

grep * domain.com juu ya domainnames

Hii ingekuwa kazi vizuri isipokuwa kulikuwa na uwanja unaofuata:

aboutycom.com

Ili kutafuta kweli kuhusu about.com unahitaji kuepuka dot kama ifuatavyo:

grep * kuhusu \ .com domainnames

Shamba ya mwisho ya kukuonyesha ni alama ya swali ambayo inasimama sifuri au tabia moja.

Kwa mfano:

grep? ber placenames

Amri ya hapo juu ingeweza kurudi aberdeen, aberystwyth au hata berwick.

03 ya 09

Kutafuta Nguvu Katika Mwanzoni na Mwisho wa Mstari Kwa kutumia grep

Carat (^) na dola ($) ishara inakuwezesha kutafuta chati wakati mwanzo na mwisho wa mistari.

Fikiria una faili inayoitwa soka na majina ya timu zifuatazo:

Ikiwa unataka kupata timu zote zilizotangulia na Manchester ungependa kutumia syntax ifuatayo:

grep ^ timu za Manchester

Amri hapo juu ingeweza kurudi Manchester City na Manchester United lakini si FC United ya Manchester.

Vinginevyo unaweza kupata timu zote zinazoishi na Umoja kwa kutumia syntax ifuatayo:

tunga timu ya Umoja wa $

Amri ya hapo juu ingeweza kurudi Manchester United na Newcastle United lakini si FC United ya Manchester.

04 ya 09

Kuhesabu Idadi ya Mechi Kutumia grep

Ikiwa hutaki kurudi mistari halisi inayofanana na mfano kwa kutumia grep lakini unataka tu kujua ngapi kuna unaweza kutumia syntax ifuatayo:

grep-c mfano inputfile

Ikiwa mfano ulifananishwa mara mbili basi namba 2 ingarudi.

05 ya 09

Kutafuta Masharti Yote ambayo Hukulingana kwa kutumia grep

Fikiria una orodha ya majina ya mahali na nchi zilizoorodheshwa kama ifuatavyo:

Huenda umeona kwamba bara la colwyn haina nchi inayohusishwa nayo.

Ili kutafuta maeneo yote na nchi unaweza kutumia syntax ifuatayo:

gia ardhi mahali $

Matokeo yanarudi itakuwa maeneo yote ila kwa bay ya colwyn.

Hii inaonekana tu kazi kwa maeneo ambayo yanaishi katika ardhi (vigumu kisayansi).

Unaweza kugeuza chaguo kwa kutumia syntax ifuatayo:

eneo la grep -v mahali $

Hii ingeweza kupata maeneo yote ambayo hayakufa na ardhi.

06 ya 09

Jinsi ya Kupata Lini Zisizo Katika Faili Kutumia grep

Fikiria una faili ya pembejeo ambayo hutumiwa na programu ya tatu ambayo inacha kusoma faili wakati inapata mstari usio na maana kama ifuatavyo:

Wakati programu inapata mstari baada ya liverpool itaacha kusoma maana ya colwyn bay imepotea kabisa.

Unaweza kutumia grep kutafuta mistari tupu na syntax ifuatayo:

grep ^ $ mahali

Kwa bahati mbaya hii sio muhimu sana kwa sababu inarudi mistari tupu.

Kwa kweli unaweza kupata idadi ya mistari tupu kama hundi ili kuona ikiwa faili ni halali kama ifuatavyo:

maeneo ya grep-c ^ $

Hata hivyo itakuwa muhimu zaidi kujua namba za mstari zilizo na mstari usio wazi ili uweze kuzibadilisha. Unaweza kufanya hivyo kwa amri ifuatayo:

grep -n ^ $ maeneo

07 ya 09

Jinsi ya Kutafuta Nguvu za Tabia za Kuzidi au Za Chini Kutumia grep

Kutumia grep unaweza kuamua ni mistari gani katika faili una wahusika wenye nguvu kutumia syntax ifuatayo:

grep '[AZ]' jina la faili

Mabaki ya mraba [] basi ueleze aina mbalimbali za wahusika. Katika mfano hapo juu inalingana na tabia yoyote iliyo kati ya A na Z.

Kwa hiyo ili kufanana na wahusika wa chini unaweza kutumia syntax ifuatayo:

grep '[az]' jina la faili

Ikiwa unataka kufanana na barua tu na sio nambari au alama nyingine unaweza kutumia syntax ifuatayo:

grep '[a-zA-Z]' jina la faili

Unaweza kufanya sawa na idadi kama ifuatavyo:

grep '[0-9]' jina la faili

08 ya 09

Kuangalia Kwa Kurudia Sampuli Kwa kutumia grep

Unaweza kutumia mabano curly {} kutafuta fomu ya kurudia.

Fikiria una faili na namba za simu kama ifuatavyo:

Unajua sehemu ya kwanza ya nambari inahitaji kuwa tarakimu tatu na unataka kupata mistari ambayo haifani na muundo huu.

Kutoka kwa mfano uliopita unajua kuwa [0-9] inarudi namba zote katika faili.

Katika hali hii tunataka mistari inayoanza na namba tatu ikifuatiwa na hyphen (-). Unaweza kufanya hivyo kwa syntax ifuatayo:

grep "^ [0-9] [0-9] [0-9] -" namba

Kama tunavyojua kutoka kwa mifano ya awali carat (^) ina maana kuwa mstari lazima uanze na muundo unaofuata.

[0-9] itatafuta namba yoyote kati ya 0 na 9. Kama hii imejumuishwa mara tatu inafanana namba 3. Hatimaye kuna hyphen kuashiria kwamba hyphen lazima kufanikiwa namba tatu.

Kwa kutumia mabakoti ya curly unaweza kufanya utafutaji iwe mdogo kama ifuatavyo:

grep "^ [0-9] \ {3 \} -" namba

Mshindo hupuka {bracket ili iweze kufanya kazi kama sehemu ya kujieleza mara kwa mara lakini kwa kweli kile kinachosema ni [0-9] {3} ambayo ina maana namba yoyote kati ya 0 na 9 mara tatu.

Mabaki ya curly pia yanaweza kutumika kama ifuatavyo:

{5,10}

{5,}}

{5,10} ina maana kwamba tabia inayotafsiriwa lazima irudiwa mara angalau 5 lakini si zaidi ya 10 ambapo {5,} inamaanisha kwamba tabia lazima iwe mara kwa mara mara 5 lakini inaweza kuwa zaidi kuliko hiyo.

09 ya 09

Kutumia Kutoka Kutoka kwa Maagizo mengine Kutumia grep

Hadi sasa tumeangalia mfano unaozingana ndani ya faili za mtu binafsi lakini grep inaweza kutumia pato kutoka kwa amri nyingine kama pembejeo ya muundo unaofanana.

Mfano mkubwa wa hii ni kutumia amri ya ps ambayo inachunguza taratibu za kazi.

Kwa mfano, tumia amri ifuatayo:

ps -ef

Utaratibu wote wa kukimbia kwenye mfumo wako utaonyeshwa.

Unaweza kutumia grep kutafuta mchakato fulani wa kuendesha kama ifuatavyo:

ps -ef | grep firefox

Muhtasari

Amri ya grep ni amri ya msingi ya Linux na ni moja ambayo inafaa kujifunza kama itafanya maisha yako iwe rahisi zaidi wakati wa kutafuta mafaili na michakato wakati wa kutumia terminal.