20 Misalan Umurnin Misali na egrep a cikin Linux


Taƙaice: A cikin wannan jagorar, za mu tattauna wasu misalai masu amfani na umarnin egrep. Bayan bin wannan jagorar, masu amfani za su iya yin binciken rubutu da inganci a cikin Linux.

Shin kun taɓa yin takaici saboda ba ku iya samun bayanan da ake buƙata a cikin rajistan ayyukan? Ciro bayanan da ake buƙata daga babban saitin bayanai aiki ne mai rikitarwa kuma mai ɗaukar lokaci.

Abubuwa sun zama ƙalubale sosai idan tsarin aiki bai samar da kayan aikin da suka dace ba kuma a nan ya zo Linux don ceton ku. Linux yana ba da kayan aikin tace rubutu iri-iri kamar sed, yanke, da sauransu.

Koyaya, egrep yana ɗaya daga cikin mafi ƙarfi kuma mafi yawan abubuwan amfani don sarrafa rubutu a cikin Linux, kuma zamu tattauna wasu misalai na umarnin egrep.

An gane umarnin egrep a cikin Linux ta dangin umarnin grep, wanda ake amfani da shi don nema da daidaita wani tsari a cikin fayiloli. Yana aiki daidai da grep -E (grep Extended regex), amma galibi yana bincika takamaiman fayil ko ma layi zuwa layi ko buga layin a cikin fayil ɗin da aka bayar.

Ma'anar umarnin egrep shine kamar haka:

$ egrep [OPTIONS] PATTERNS [FILES]

Bari mu ƙirƙiri samfurin fayil ɗin rubutu tare da abubuwan ciki masu zuwa don amfani da misali:

$ cat sample.txt

Anan, zamu iya ganin cewa fayil ɗin rubutu yana shirye. Yanzu bari mu tattauna ƴan misalai na gama gari waɗanda za a iya amfani da su a kullum.

Bari mu fara da misali mai sauƙi-matching, inda za mu iya amfani da umarnin da ke ƙasa don nemo kirtani ƙwararriyar a cikin fayil ɗin sample.txt:

$ egrep professionals sample.txt

Anan, zamu iya ganin cewa umarnin yana buga layin wanda ya ƙunshi ƙayyadadden tsari.

Za mu iya sa abin da aka fitar ya fi ba da labari ta hanyar nuna alamar da ta dace. Don cimma wannan, za mu iya amfani da zaɓin --launi na umarnin egrep. Misali, umarnin da ke ƙasa zai haskaka rubutun ƙwararru cikin launin ja:

$ egrep --color=auto professionals sample.txt

Anan, zamu iya ganin cewa fitarwa iri ɗaya ya fi ba da labari idan aka kwatanta da na baya. Har ila yau, za mu iya gane cewa kalmar masu sana'a ana maimaita su sau biyu.

A yawancin tsarin Linux ana kunna saitin da ke sama ta tsohuwa ta amfani da laƙabi mai zuwa:

$ alias egrep='egrep –color=auto'

Umurnin egrep yana karɓar fayiloli da yawa azaman hujja, wanda ke ba mu damar bincika takamaiman tsari a cikin fayiloli da yawa. Bari mu fahimci wannan da misali.

Da farko, ƙirƙirar kwafin fayil ɗin sample.txt:

$ cp sample.txt sample-copy.txt

Yanzu, bincika tsarin ƙwararru a cikin fayilolin biyu:

$ egrep professionals sample.txt sample-copy.txt 

A cikin misalin da ke sama, za mu iya ganin sunan fayil a cikin fitarwa, wanda ke wakiltar layin da ya dace daga wannan fayil ɗin.

Wani lokaci muna buƙatar kawai gano ko ƙirar tana cikin fayil ɗin ko a'a. Idan eh to a layin nawa yake yanzu? A irin waɗannan lokuta, za mu iya amfani da zaɓi na -c na umarnin.

Misali, umarnin da ke ƙasa zai nuna 1 azaman fitarwa saboda kalmar ƙwararru tana cikin layi ɗaya kawai.

$ egrep -c professionals sample.txt

1

A cikin misalin da ya gabata, mun ga cewa zaɓin -c baya ƙidaya adadin abubuwan da suka faru na tsarin. Misali, kalmar masana'a tana bayyana sau biyu a layi ɗaya amma zaɓin -c yana ɗaukarta azaman wasa ɗaya kawai.

A irin waɗannan lokuta, za mu iya amfani da -o zaɓi na umarnin don buga ƙirar da ta dace kawai. Misali, umarnin da ke ƙasa zai nuna kalmar ƙwararru akan layi biyu daban-daban:

$ egrep -o professionals sample.txt

Yanzu, bari mu ƙidaya layin ta amfani da umarnin wc:

$ egrep -o professionals sample.txt | wc -l

A cikin misalin da ke sama, mun yi amfani da haɗin egrep da umarnin wc don ƙidaya adadin abubuwan da suka faru na musamman.

Ta hanyar tsoho, egrep yana yin daidaitaccen tsari a cikin hanyar da ta dace. Yana nufin kalmomi - mu, Mu, mu, da MU ana ɗaukar su azaman kalmomi daban-daban. Koyaya, za mu iya tilasta binciken da ba shi da amfani ta amfani da zaɓin -i.

Misali, a cikin tsarin tsarin umarni na ƙasa zai yi nasara ga rubutun mu da Mu:

$ egrep -i we sample.txt 

A cikin misalin da ya gabata, mun ga cewa umurnin egrep yana yin wani ɗan wasa. Misali, lokacin da muka nemo rubutun mu sannan tsarin daidaitawa ya yi nasara ga sauran rubutun kuma. Kamar yanar gizo, gidan yanar gizo, da kuma kasance.

Don shawo kan wannan iyakancewa, za mu iya zaɓin -w, wanda ke tilasta madaidaicin kalmar gaba ɗaya.

$ egrep -w we sample.txt

Ya zuwa yanzu, mun yi amfani da umarnin egrep don buga layin da tsarin da aka bayar ya kasance. Koyaya, wani lokacin muna son yin aikin ta wata hanya dabam.

Misali, ƙila mu so mu buga layukan da tsarin da aka bayar ba ya nan. Za mu iya cimma wannan tare da taimakon zaɓin -v:

$ egrep -v we sample.txt

Anan, zamu iya ganin cewa umarnin yana buga duk layin da ba ya ƙunshi rubutun mu.

Za mu iya amfani da zaɓin -n na umarnin don kunna lambar layin, wanda ke nuna lambar layin a cikin fitarwa lokacin da daidaitawar tsari ya yi nasara. Wannan dabara mai sauƙi tana sa fitarwa ta fi ma'ana.

$ egrep -n professionals sample.txt

A cikin fitarwar da ke sama, za mu iya ganin kalmar masana'a tana cikin layi na 5.

A cikin yanayin shiru, umarnin egrep baya buga tsarin da ya dace. Don haka dole ne mu yi amfani da ƙimar dawowar umarnin don gano ko an yi nasarar daidaita tsarin ko a'a.

Za mu iya amfani da zaɓin -q na umarnin don kunna yanayin shiru, wanda ke zuwa da amfani yayin rubuta rubutun harsashi.

$ egrep -q professionals sample.txt
$ egrep -q non-existing-pattern sample.txt

A cikin wannan misali, ƙimar dawowar sifili tana nuna kasancewar ƙirar yayin da ƙimar mara sifili tana nuna rashin tsarin.

Wani lokaci, yana da ma'ana don nuna ƴan layika a kusa da ƙirar da suka dace. Don irin waɗannan yanayin, za mu iya amfani da zaɓin -B na umarnin, wanda ke nuna layin N kafin tsarin da ya dace.

Misali, umarnin da ke ƙasa zai buga layin wanda tsarin ƙirar ya yi nasara da kuma layukan 2 a gabansa.

$ egrep -B 2 -n professionals sample.txt 

A cikin wannan misalin, mun yi amfani da zaɓin -n don nuna lambobin layi.

Hakazalika, za mu iya amfani da -A zaɓi na umarnin don nuna layi bayan daidaitawar tsari. Misali, umarnin da ke ƙasa zai buga layin wanda tsarin ƙirar ya yi nasara da kuma layukan 2 na gaba.

$ egrep -A 2 -n professionals sample.txt

Baya ga wannan, umarnin egrep yana goyan bayan zaɓin -C wanda ya haɗa ayyukan zaɓuɓɓukan -A da -B, waɗanda ke nuna alamar Lines kafin da kuma bayan tsarin da ya dace.

$ egrep -C 2 -n professionals sample.txt 

Kamar yadda aka tattauna a baya, za mu iya yin daidaitaccen tsari akan fayiloli da yawa. Koyaya, lamarin ya zama mai wahala lokacin da fayiloli ke kasancewa a ƙarƙashin manyan kundin adireshi da yawa kuma muna wuce su duka azaman gardamar umarni.

A irin waɗannan lokuta, za mu iya yin daidaitaccen tsari ta hanyar maimaitawa ta amfani da zaɓin -r kamar yadda aka nuna a misali mai zuwa.

Da farko, ƙirƙiri ƙananan kundin adireshi 2 kuma kwafi fayil ɗin sample.txt a cikinsu:

$ mkdir -p dir1/dir2
$ cp sample.txt dir1/
$ cp sample.txt dir1/dir2/

Yanzu, bari mu aiwatar da aikin bincike ta hanyar maimaitawa:

$ egrep -r professionals dir1

A cikin misalin da ke sama, za mu iya ganin cewa ƙirar ƙirar ta yi nasara don fayilolin dir1/dir2/sample.txt da dir1/sample.txt.

Za mu iya amfani da ɗigo (.) harafi don dacewa da kowane harafi ɗaya ban da ƙarshen layi. Misali, wannan magana ta yau da kullun ta ƙasa ta yi daidai da rubutun har, hula, kuma yana da:

$ egrep "ha." sample.txt

Za mu iya amfani da alamar alamar (*) don daidaita sifili ko fiye da abubuwan da suka faru na halin da suka gabata. Misali, kalmomin yau da kullun na ƙasa sun dace da rubutu wanda ke ɗauke da kirtani mu sannan sai sifili ko fiye da abubuwan da suka faru na harafin b.

$ egrep "web*" sample.txt

Za mu iya amfani da da (+) don daidaita ɗaya ko fiye da abubuwan da suka faru a baya. Misali, kalmar yau da kullun da ke ƙasa ta yi daidai da rubutun da ke ɗauke da kirtani mu sannan aƙalla aukuwa ɗaya na harafin b.

$ egrep "web+" sample.txt

Anan, zamu iya ganin cewa daidaitawar ƙirar ba ta yin nasara ga kalmomin - mu da suka kasance , saboda rashin halayen b.

Za mu iya amfani da kula (^) don wakiltar farkon layin. Misali, kalmomin yau da kullun na ƙasa suna buga layin da suka fara da rubutu Mu:

$ egrep "^We" sample.txt

Za mu iya amfani da dala ($) don wakiltar ƙarshen layi. Misali, magana ta yau da kullun da ke ƙasa tana buga layin da suka ƙare da rubutu e.:

$ egrep "e.$" sample.txt

Za mu iya amfani da caret (^) nan da nan sai dala ($) ta biyo baya don wakiltar layin da ba komai. Bari mu yi amfani da wannan a cikin magana ta yau da kullun don cire layin da ba komai:

$ egrep -n -v "^$" sample.txt

A cikin fitarwar da ke sama, zamu iya ganin cewa lambobin layi 2, 4, 6, 8, da 10 ba su bayyana kamar yadda babu komai.

A cikin wannan labarin, mun tattauna wasu misalai masu amfani na umarnin egrep. Mutum na iya amfani da waɗannan misalan a cikin rayuwar yau da kullum don inganta yawan aiki.

Shin kun san kowane mafi kyawun misali na umarnin egrep a cikin Linux? Bari mu san ra'ayoyin ku a cikin sharhin da ke ƙasa.