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
Imajine ou gen yon dosye tèks ki rele liv ak tit liv timoun sa yo:
- Robin Hood
- Little Wouj Riding Hood
- Peter Pan
- Goldilocks ak lous yo twa
- Nèj blan ak Nen yo sèt
- Pinnochio
- Cat la nan chapo a
- Twa ti kochon yo
- Gruffalo la
- Charlie ak faktori a chokola
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:
- Goldilocks ak lous yo twa
- Nèj blan ak Nen yo sèt
- Cat la nan chapo a
- Twa ti kochon yo
- Gruffalo la
- Charlie ak faktori a chokola
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
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- nonforbeginners.about.com
- chakdaylinuxuser.com
- google.co.uk
- google.au
- dirèk.gov.uk
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:
- chak jou linux / about.html
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:
- Blackpool
- Liverpool
- Manchester City
- Leicester City
- Manchester United
- Newcastle Etazini
- FC United nan Manchester
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:
- Aberdeen scotland
- glasgow scotland
- liverpool england
- colwyn Bay
- Lond Angletè
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:
- Aberdeen scotland
- inèsite scotland
- liverpool england
- colwyn Bay Wales
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:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
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