Linux-da Grep, Egrep we Fgrep-iň arasyndaky tapawut?


Unix ýaly ulgamlarda meşhur gözleg guralynyň biri, faýl bolsun, ýa-da bir setir ýa-da birnäçe setir bolsun, gözlemek üçin ulanyp boljak grep kömekidir. Funksiýa taýdan örän giňdir, ony goldaýan köp sanly wariant bilen baglanyşdyryp bolar: simli nagyş ulanyp gözlemek, ýa-da reg-ex nagşy ýa-da perl esasly reg-ex we ş.m.

Dürli işleýiş aýratynlyklary sebäpli grep, egrep (Giňeldilen GREP), fgrep (Fixed GREP), pgrep (Prosess GREP), rgrep (Recursive GREP) we ş.m. ýaly köp warianty bar, ýöne bu wariantlar özboluşly grep bilen tapawutlanýar. meşhur we dürli Linux programmistleri tarapyndan belli bir meseleler üçin ulanylmaly.

Derňelmeli esasy zat, Linux ulanyjylaryny talaplara görä bir ýa-da beýleki wersiýany saýlamaga mejbur edýän grepiň üç esasy wariantynyň, ýagny “grep”, “egrep” we “fgrep” arasyndaky tapawutlar näme.

Grep-iň käbir ýörite meta-nyşanlary

  1. + - Öňki simwolyň bir ýa-da birnäçe hadysasyna deňdir.
  2. ? - Bu öňki simwolyň takmynan 1 gezek gaýtalanmagyny aňladýar. Halaýan: a? a ýa-da aa gabat geler.
  3. ( - alternatiw aňlatmanyň başlangyjy.
  4. ) - alternatiw aňlatmanyň soňy.
  5. | - | bilen bölünen aňlatmanyň ikisine-de gabat gelýär. : Agny: \(a | b) cde ýa abcde ýa-da bbcde gabat gelýär.
  6. { - Bu meta-nyşan aralyk kesgitleýjiniň başlanandygyny görkezýär. Halaýan: \a {2} faýlda\aa gabat gelýär, ýagny 2 gezek.
  7. } - Bu meta-nyşan aralyk kesgitleýjiniň gutarandygyny görkezýär.

Grep, egrep we fgrep arasyndaky tapawutlar

Grep, egrep we fgrep arasyndaky käbir esasy tapawutlary aşakdaky ýaly görkezip bolar. Bu mysallar toplumy üçin haýsy amalyň ýerine ýetiriljekdigini göz öňünde tutýarys:

grep ýa-da Global Regular Expression Print, islendik faýlda ýa-da faýllaryň sanawynda ýa-da hatda islendik buýrugyň çykyşynda islendik görnüşi gözläp bilýän Unix ýaly ulgamlarda esasy gözleg programmasydyr.

Gözleg nusgasy hökmünde adaty setirlerden başga-da Esasy yzygiderli aňlatmalary ulanýar. Esasy yzygiderli aňlatmalarda (BRE), meta-simwollar: {,} , (,) , | , + , ? manylaryny ýitirýär we adaty simwollar hökmünde seredilýär we ýörite nyşanlar hökmünde garalmaly bolsa gaçmaly.

Şeýle hem, grep islendik setiri ýa-da yzygiderli aňlatmany çalt gözlemek üçin Boyer-Mur algoritmini ulanýar.

$ grep -C 0 '(f|g)ile' check_file
$ grep -C 0 '\(f\|g\)ile' check_file

Bu ýerde bolşy ýaly, buýruk () we | gaçmazdan işledilende, doly setiri gözledi, ýagny \(f | g) ile faýlda. specialöne ýörite nyşanlardan gaçyp gutulansoň, grep olara meta-simwol hökmünde garady we \file ýa-da sözlerini gözledi. faýlda\gile .

Egrep ýa-da grep -E grep ýa-da Giňeldilen grep-iň başga bir wersiýasy. Grep-iň bu wersiýasy, meta-nyşanlara bolşy ýaly garaýar we olary grep ýaly setirler ýaly çalyşmaýar, yzygiderli aňlatma nagşyny gözlemek meselesinde täsirli we çalt bolýar, şonuň üçinem siz olardan gaçmak agyrlygyndan halas bolýarsyňyz grep. ERE ýa-da Giňeldilen yzygiderli aňlatma toplumyny ulanýar.

Egrep ýagdaýynda, meta-nyşanlardan gaçmasaňyzam, olara aýratyn nyşan hökmünde garar we setiriň bir bölegi hökmünde garamagyň ýerine olary aýratyn manysyna çalyşar.

$ egrep -C 0 '(f|g)ile' check_file
$ egrep -C 0 '\(f\|g\)ile' check_file

Bu ýerde bolşy ýaly, egrep bu nyşanlaryň manysyny aňladýan ýaly meta-nyşanlardan gaçyp gutulmansoň, \file setirini gözledi. setiriň bir bölegi we faýlda \(f | g) ile doly setir gözledi.

Fgrep ýa-da “Fixed grep” ýa-da “grep -F” grepiň başga bir wersiýasy bolup, adaty aňlatmalary ýa-da meta-nyşanlary tanamaýandygy sebäpli yzygiderli aňlatmagyň ýerine tutuş setiri gözlemek üçin çalt gözlenýär. Islendik göni setiri gözlemek üçin, grep görnüşi saýlanmalydyr.

Fgrep doly setir gözleýär we gaçsa-da gaçmasa-da yzygiderli aňlatmagyň bir bölegi hökmünde ýörite nyşanlary tanamaýar.

$ fgrep -C 0 '(f|g)ile' check_file
$ fgrep -C 0 '\(f\|g\)ile' check_file

Mälim bolşy ýaly, meta-nyşanlardan gaçyp bilmediklerinde, fgrep faýldaky \(f | g) ile doly setirini gözledi we meta-nyşanlardan gaçanda fgrep buýrugy gözlendi faýlda bolşy ýaly \\ (f\| g \) ile üçin.

Linux-da grep buýrugyndan has köp peýdalanmak isleseňiz, grep buýrugynyň amaly mysallaryny eýýäm şu ýerde okap bilersiňiz.

Netije

Aboveokarda görkezilenler, grep, egrep we fgrep arasyndaky tapawutlar. Ulanylýan yzygiderli aňlatmalar toplumynyň tapawudyndan we ýerine ýetiriş tizliginden başga, dynç buýruk setiriniň parametrleri grepiň üç wersiýasy üçin üýtgewsiz galar we hatda\egrep ýa-da\fgrep,\grep -E ýa-da\grep -F ulanmak maslahat berilýär.

Grep-iň bu üç wersiýasynyň arasynda başga bir tapawut tapsaňyz, teswirleriňizde agzap geçiň.