Egzanp sèvi ak lòd la grep Linux

Entwodiksyon

Se lòd la Grep Linux itilize kòm yon metòd pou filtre opinyon.

GREP kanpe pou Printer ekspresyon regilye global ak Se poutèt sa yo nan lòd yo sèvi ak li efektivman, ou ta dwe gen kèk konesans sou ekspresyon regilye.

Nan atik sa a, mwen pral montre w yon kantite egzanp ki pral ede w konprann lòd grep la.

01 nan 09

Kijan Pou Chèche yon fisèl nan yon File Sèvi ak GREP

Lòd la gref Linux.

Imajine ou gen yon dosye tèks ki rele liv ak tit liv timoun sa yo:

Pou jwenn tout liv yo avèk mo "The" la nan tit ou ta itilize sentaks sa yo:

Grep Liv yo

Rezilta sa yo ap retounen:

Nan chak ka, mo "The" la pral make.

Remake byen ke rechèch la se ka sansib konsa si youn nan tit yo te "a" olye pou yo "a" Lè sa a, li pa ta retounen.

Pou inyore ka a ou ka ajoute switch sa yo:

grep liv yo - siy-ka

Ou kapab tou itilize -i switch la jan sa a:

grep -i liv yo

02 nan 09

Search pou yon fisèl nan yon dosye sèvi ak Wildcards

Kòmandman grep la trè pwisan. Ou ka sèvi ak yon multitude de modèl matche teknik pou filtre rezilta yo.

Nan egzanp sa a, mwen pral montre w kouman pou fè rechèch pou yon fisèl nan yon dosye lè l sèvi avèk wildcards .

Imajine ou gen yon dosye yo rele kote ki gen non yo Scottish plas sa yo:

alamòd

anplis

butlour

Inverurie

Inverness

Newburgh

nouvo sèf

nouvo galloway

glasgow

edinburgh

Si ou vle jwenn tout kote ki gen invert nan non an itilize sentaks sa yo:

grep inver * kote

Asterisk (*) sovaj la kanpe pou 0 oswa anpil. Se poutèt sa, si ou gen yon kote ki rele Inver oswa yon kote ki rele Inverness Lè sa a, tou de ta dwe retounen.

Yon lòt wildcard ou ka itilize se peryòd la (.). Ou ka sèvi ak sa a matche ak yon lèt sèl.

grep kote inver.r

Kòmandman ki anwo la a ta jwenn kote yo rele inverurie ak inverary, men pa t 'jwenn invereerie paske gen sèlman yon sèl wildcard ant de r a kòm deziye pa peryòd la sèl.

Pèsekitè a peryòd se itil men li ka lakòz pwoblèm si ou gen yon sèl kòm yon pati nan tèks la w ap chèche.

Pou egzanp gade nan lis sa a nan non domèn

Pou jwenn tout about.com yo ou ta ka jis rechèch lè l sèvi avèk sentaks sa yo:

Grep * sou domainnames

Kòmandman an pi wo a ta tonbe si lis la genyen non sa a nan li:

Ou te kapab, Se poutèt sa, eseye sentaks sa yo:

grep * domèn domain.com

Sa a ta travay ok sof si te gen yon domèn ak non sa a:

onycom.com

Pou vrèman rechèch pou tèm nan about.com ou ta bezwen yo sove dot la jan sa a:

Grep * sou domèn \ .com domèn

Wildcard final la montre ou se mak la kesyon ki vle di pou zewo oswa yon karaktè.

Pa egzanp:

grep? Placenames

Kòmandman ki pi wo a ta retounen butdeen, aberystwyth oswa menm Berwick.

03 nan 09

Search pou strings nan kòmansman an ak nan fen liy lè l sèvi avèk grep

Carat la (^) ak dola a ($) senbòl pèmèt ou pou fè rechèch pou modèl nan kòmansman ak nan fen liy.

Imajine ou gen yon dosye ki rele foutbòl ak non ekip sa yo:

Si ou te vle jwenn tout ekip yo ki te kòmanse avèk Manchester ou ta itilize sentaks sa yo:

grep ^ ekip Manchester

Kòmandman an pi wo a ta retounen Manchester City ak Manchester United, men se pa FC Etazini nan Manchester.

Altènativman ou ka jwenn tout ekip yo ki fini ak Etazini lè l sèvi avèk sentaks sa yo:

grep Etazini $ ekip

Kòmandman ki anwo la a ta retounen Manchester United ak Newcastle United, men se pa FC Etazini nan Manchester.

04 nan 09

Konte nimewo a nan matche sèvi ak grep

Si ou pa vle retounen liy aktyèl yo ki koresponn ak yon modèl lè l sèvi avèk grep men ou jis vle konnen konbyen gen ou ka itilize sentaks sa yo:

grep -c modèl inputfile

Si modèl la te matche de fwa, nimewo 2 la ta retounen.

05 nan 09

Jwenn tout tèm yo ki pa matche ak grep

Imajine ou gen yon lis non kote ak peyi yo ki nan lis jan sa a:

Ou ka remake ke colwyn Bay pa gen okenn peyi ki asosye avèk li.

Pou fè rechèch pou tout kote ki gen yon peyi ou ka itilize sentaks sa yo:

grep peyi $ kote

Rezilta yo retounen ta dwe tout kote yo eksepte pou Bay colwyn.

Sa a evidamman sèlman travay pou kote ki fini nan peyi (diman syantifik).

Ou ka anpeche chwazi a lè l sèvi avèk sentaks sa yo:

grep -v peyi kote $

Sa a ta jwenn tout kote ki pa t 'fini ak peyi.

06 nan 09

Kijan Pou Jwenn liy vid nan dosye Sèvi ak grep

Imajine ou gen yon dosye opinyon ki itilize pa yon aplikasyon twazyèm pati ki sispann lekti dosye a lè li jwenn yon liy vid jan sa a:

Lè aplikasyon an vin nan liy apre liverpool li pral sispann lekti sa vle di colwyn Bay manke tout antye.

Ou ka sèvi ak grep pou fè rechèch pou liy vid ak sentaks sa yo:

grep ^ $ kote

Malerezman sa a se pa patikilyèman itil paske li jis retounen liy vid yo.

Ou ta ka nan kou jwenn yon konte sou kantite liy vid kòm yon chèk yo wè si dosye a valab jan sa a:

grep -c ^ $ kote

Li ta sepandan gen plis itil konnen nimewo liy yo ki gen yon liy vid pou ke ou ka ranplase yo. Ou ka fè sa ak kòmandman sa a:

grep -n ^ $ kote

07 nan 09

Kijan Pou Search pou chèn nan Uppercase Oswa Lowercase karaktè Sèvi ak grep

Lè l sèvi avèk grep ou ka detèmine ki liy nan yon dosye gen karaktè majuskul lè l sèvi avèk sentaks sa yo:

grep '[AZ]' filename

Kare parantèz yo [] kite ou detèmine seri a nan karaktè. Nan egzanp lan pi wo a li matche ak nenpòt karaktè ki se ant A ak Z.

Se poutèt sa, matche ak karaktè miniskil ou ka itilize sentaks sa yo:

grep '[az]' filename

Si ou vle matche ak lèt ​​sèlman epi ou pa nimerik oswa lòt senbòl ou ka itilize sentaks sa yo:

grep '[a-zA-Z]' filename

Ou ka fè menm bagay avèk nimewo yo jan sa a:

grep '[0-9]' filename

08 nan 09

Chache Repete Modèl Sèvi ak grep

Ou ka itilize parantèz Curly {} pou fè rechèch pou yon modèl repete.

Imajine ou gen yon dosye ak nimewo telefòn jan sa a:

Ou konnen premye pati nan nimewo a bezwen twa chif epi ou vle jwenn liy ki pa matche ak modèl sa a.

Soti nan egzanp lan anvan ou konnen ke [0-9] retounen tout nimewo nan yon dosye.

Nan egzanp sa a nou vle liy ki kòmanse ak twa nimewo ki te swiv pa yon sifle (-). Ou ka fè sa ak sentaks sa yo:

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

Kòm nou konnen nan egzanp anvan karat la (^) vle di ke liy lan dwe kòmanse ak modèl sa a.

[0-9] ap chèche pou nenpòt ki nimewo ant 0 ak 9. Kòm sa a enkli twa fwa li matche 3 nimewo. Finalman, gen yon twou ki montre ke yon tiyo dwe reyisi twa nimewo yo.

Lè l sèvi avèk parantèz yo Curly ou ka fè rechèch la pi piti jan sa a:

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

Kouch la sove {klòch la pou li travay kòm yon pati nan ekspresyon regilye a, men nan sans sa sa a di se [0-9] {3} ki vle di nenpòt ki nimewo ant 0 ak 9 twa fwa.

Parantèz yo Curly kapab tou itilize jan sa a:

{5,10}

{5,}

Nan {5,10} vle di ke yo te fouye karaktè a dwe repete omwen 5 fwa men pa plis pase 10 Lè nou konsidere ke {5,} vle di ke pèsonaj la dwe repete omwen 5 fwa, men li ka pi plis pase sa.

09 nan 09

Sèvi ak Sòti nan lòt kòmandman Sèvi ak grep

Se konsa, lwen nou te gade modèl matche nan dosye endividyèl men grep ka itilize pwodiksyon an soti nan lòt kòmandman kòm opinyon an pou matche modèl.

Yon gwo egzanp sa a se lè l sèvi avèk lòd la ps ki bay lis pwosesis aktif.

Pou egzanp kouri lòd sa a:

ps -ef

Tout pwosesis yo kouri sou sistèm ou an ap parèt.

Ou ka sèvi ak grep pou fè rechèch pou yon pwosesis kouri patikil jan sa a:

ps -ef | grep firefox

Rezime

Kòmandman grep la se yon lòd fondamantal Linux epi li se youn ki se byen vo aprann jan li pral fè lavi ou pi fasil lè pou chèche dosye ak pwosesis lè w ap itilize tèminal la.