Introduzzjoni
Il-kmand grep ta 'Linux jintuża bħala metodu għall-filtrazzjoni tal-input.
Il-GREP huwa l-Printer Globali ta 'Espressjoni Regolari u għalhekk sabiex tużah b'mod effettiv, għandu jkollok ftit għarfien dwar espressjonijiet regolari.
F'dan l-artikolu, jiena ser nuruk numru ta 'eżempji li ser jgħinuk tifhem il-kmand grep.
01 ta '09
Kif tfittex għal String f'Fajl bl-użu ta 'GREP
Immaġina li għandek fajl ta 'test imsejjaħ kotba bit-titoli tal-kotba tat-tfal li ġejjin:
- Robin Hood
- Little Red Riding Hood
- Peter Pan
- Goldilocks U t-Tliet Bears
- Abjad tas-silġ u s-seba 'nanna
- Pinnochio
- Il-Kat Fil-Hat
- It-Tliet Majjali Majjali
- Il-Gruffalo
- Charlie U Il-Fabbrika Ċikkulata
Biex issib il-kotba kollha bil-kelma "Il-" fit-titlu tuża s-sintassi li ġejja:
grep Il-kotba
Ir-riżultati li ġejjin se jintbagħtu lura:
- Goldilocks U t-Tliet Bears
- Abjad tas-silġ u s-seba 'nanna
- Il-Kat Fil-Hat
- It-Tliet Majjali Majjali
- Il-Gruffalo
- Charlie U Il-Fabbrika Ċikkulata
F'kull każ, il-kelma "Il-" se tkun enfasizzata.
Innota li t-tiftixa hija sensittiva għall-każijiet hekk jekk wieħed mit-titoli kellu "l-" minflok "Il-" allura ma kienx jiġi rritornat.
Biex tinjora l-każ tista 'żżid il-bidla li ġejja:
grep il-kotba - in-nuqqas ta 'każ
Tista 'wkoll tuża l-buttuna -i kif ġej:
grep -i l-kotba
02 ta '09
Tiftix għal String f'Fajl bl-użu ta 'Wildcards
Il-kmand grep huwa qawwi ħafna. Tista 'tuża numru kbir ta' tekniki ta 'tqabbil tal-mudell biex tiffiltra r-riżultati.
F'dan l-eżempju, jien ser nuruk kif tfittxija għal sekwenza f'fajl bl-użu ta ' kards wild .
Immaġina li għandek fajl imsejjaħ postijiet bl-ismijiet ta 'postijiet Skoċċiżi li ġejjin:
aberdeen
aberystwyth
aberlour
inverurie
inverness
newburgh
ċriev ġdid
galloway ġdid
Glasgow
edinburgh
Jekk trid issib il-postijiet kollha b'inver in the name, uża s-sintassi li ġejja:
Grep inver * postijiet
L-asterisk (*) wildcard jammonta għal 0 jew ħafna. Għalhekk jekk għandek post imsejjaħ inver jew post imsejjaħ inverness, it-tnejn jiġu rritornati.
Ieħor wildcard li tista 'tuża huwa l-perjodu (...). Tista 'tuża dan biex tqabbel ittra waħda.
postijiet grep inver.r
Il-kmand t'hawn fuq isib postijiet imsejħa inverurie u inverary iżda ma jsibx invereerie minħabba li jista 'jkun hemm wildcard wieħed biss bejn iż-żewġ r kif indikat fil-perjodu wieħed.
Il-wildcard perjodu huwa utli iżda jista 'jikkawża problemi jekk ikollok wieħed bħala parti mit-test li qed tfittex.
Pereżempju ħares lejn din il-lista ta 'ismijiet ta' domain
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- dailylinuxuser.com
- google.co.uk
- google.au
- dirett.gov.uk
Biex issib l-about.coms kollha tista 'biss tfittex billi tuża s-sintassi li ġejja:
grep * dwar * domainnames
Il-kmand ta 'hawn fuq jaqa' jekk il-lista kien fiha l-isem li ġej fih:
- dailylinuxuser.com/about.html
Inti tista ', għalhekk, tipprova s-sintassi li ġejja:
grep * about.com domainnames
Dan jaħdem ok sakemm ma kienx hemm dominju bl-isem li ġej:
aboutycom.com
Biex verament ifittex it-terminu about.com ikollok bżonn tiskappa d-dot kif ġej:
grep * dwar \ .com domainnames
Il-wildcard finali li nuruk huwa s-sinjal ta 'interrogazzjoni li jfisser żero jew karattru wieħed.
Pereżempju:
Grep? ber placenames
Il-kmand t'hawn fuq jerġa 'lura aberdeen, aberystwyth jew anke berwick.
03 ta '09
Fittex Għall Strings Fuq Il-Bidu U Tmiem tal-Linja Bl-użu grep
Is-simbolu tal-karat (^) u d-dollaru ($) jippermettilek tfittex xejriet fil-bidu u fit-tmiem tal-linji.
Immaġina li għandek fajl imsejjaħ futbol bl-ismijiet tat-tim li ġejjin:
- Blackpool
- Liverpool
- Manchester City
- Leicester City
- Manchester United
- Newcastle United
- FC United Of Manchester
Jekk riedu jsibu t-timijiet kollha li bdew ma 'Manchester intom tuża s-sintassi li ġejja:
grep ^ Manchester timijiet
Il-kmand ta 'hawn fuq jirritorna Manchester City u Manchester United iżda mhux FC United Of Manchester.
Alternattivament tista 'ssib it-timijiet kollha li jispiċċaw ma' United bl-użu tas-sintassi li ġejja:
Grep United $ timijiet
Il-kmand ta 'hawn fuq jirritorna Manchester United u Newcastle United iżda mhux FC United Of Manchester.
04 ta '09
L-għadd ta 'logħbiet bl-użu ta' grep
Jekk ma tridx li tirritorna l-linji attwali li jaqblu ma 'mudell bl-użu ta' grep iżda inti biss trid tkun taf kemm hemm tista 'tuża s-sintassi li ġejja:
grep -c mudell inputfile
Jekk il-mudell kien imqabbel darbtejn, in-numru 2 ikun ritornat.
05 ta '09
Sib it-Termini kollha li ma Tqabbilx bl-użu ta 'grep
Immaġina li għandek lista ta 'ismijiet ta' postijiet mal-pajjiżi elenkati kif ġej:
- aberdeen scotland
- Glasgow l-Iskozja
- liverpool ingland
- kolwyn bay
- london ingland
Jista 'jkollok innutat li l-bajja ta' Colwyn m'għandha l-ebda pajjiż assoċjat miegħu.
Biex tfittex il-postijiet kollha ma 'pajjiż tista' tuża s-sintassi li ġejja:
Grep land $ postijiet
Ir-riżultati jirritornaw ikunu l-postijiet kollha ħlief għall-bajja ta 'Colwyn.
Dan ovvjament jaħdem biss għal postijiet li jispiċċaw fl-art (ftit li xejn xjentifiċi).
Tista 'taqleb il-għażla billi tuża s-sintassi li ġejja:
grep -v art $ postijiet
Dan isib il-postijiet kollha li ma spiċċawx ma 'l-art.
06 ta '09
Kif issib linji vojta fil-fajls bl-użu ta 'grep
Immaġina li għandek fajl tad-dħul li jintuża minn applikazzjoni ta 'parti terza li tieqaf taqra l-fajl meta ssib linja vojta kif ġej:
- aberdeen scotland
- inverness isko Scotia
- liverpool ingland
- raħal tal-bajja ta 'Colwyn
Meta l-applikazzjoni tasal għal-linja wara l-liverpool din se tieqaf taqra li tfisser li l-bajja ta 'Colwyn ma tintlaħaqx kompletament.
Tista 'tuża grep biex tfittex linji vojta bis-sintassi li ġejja:
grep ^ $ postijiet
Sfortunatament dan mhuwiex partikolarment utli għaliex jirritorna biss il-linji vojta.
Tista 'naturalment tikseb għadd tan-numru ta' linji vojta bħala kontroll biex tara jekk il-fajl huwiex validu kif ġej:
grep -c ^ $ postijiet
Ikun madankollu iktar utli li tkun taf in-numri tal-linja li għandhom linja vojta sabiex tista 'tissostitwixxihom. Tista 'tagħmel dan bil-kmand li ġej:
Grep -n ^ $ postijiet
07 tal-09
Kif Tiftix għal Ktajjen Ta 'Karatteristiċi b'kapplikazzjoni Żgħira jew Minuski Bl-użu ta' grep
Bl-użu tal-grep tista 'tiddetermina liema linji f'fajl ikollu karattri b'karattri kbar billi tuża s-sintassi li ġejja:
grep '[AZ]' filename
Il-parentesi kwadri [] tavżak tiddetermina l-firxa ta 'karattri. Fl-eżempju ta 'hawn fuq, jaqbel ma' kwalunkwe karattru bejn A u Z.
Għalhekk, biex tqabbel il-karattri żgħar tista 'tuża s-sintassi li ġejja:
grep "[az]" filename
Jekk trid tqabbel biss ittri u mhux numeriċi jew simboli oħra tista 'tuża s-sintassi li ġejja:
grep '[a-zA-Z]' filename
Tista 'tagħmel l-istess bin-numri kif ġej:
grep '[0-9]' filename
08 ta '09
Looking for Patterns Ripetuti Bl-użu grep
Tista 'tuża parentesi ċivil {} biex tfittex mudell ripetut.
Immaġina li għandek fajl bin-numri tat-telefon kif ġej:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
Intom taf li l-ewwel parti tan-numru trid tkun ta 'tliet ċifri u trid issib il-linji li ma jaqblux ma' dan il-mudell.
Mill-eżempju ta 'qabel taf li [0-9] jirritorna n-numri kollha f'fajl.
F'dan il-każ irridu l-linji li jibdew bi tliet numri segwiti minn sing (-). Tista 'tagħmel dan bis-sintassi li ġejja:
grep "^ [0-9] [0-9] [0-9] -" numri
Kif nafu minn eżempji preċedenti l-karat (^) tfisser li l-linja għandha tibda bil-mudell li ġej.
Il- [0-9] se tfittex għal kwalunkwe numru bejn 0 u 9. Minħabba li dan huwa inkluż tliet darbiet, dan jaqbel ma '3 numri. Fl-aħħarnett hemm silta li tindika li sing għandu jirnexxi fit-tliet numri.
Bl-użu tal-parentesi tal-kaboċċi tista 'tagħmel it-tfittxija iżgħar kif ġej:
Grep "^ [0-9] \ {3 \} -" in-numri
It-taffija taħrab mill-parentesi sabiex taħdem bħala parti mill-espressjoni regolari iżda essenzjalment dak li qed tgħid hija [0-9] {3} li jfisser kull numru bejn 0 u 9 tliet darbiet.
Il-parentesi tal-kaboċċi jistgħu jintużaw ukoll kif ġej:
{5,10}
{5,}
Il-{5,10} tfisser li l-karattru li qed jiġi mfittex għandu jiġi ripetut mill-inqas 5 darbiet iżda mhux aktar minn 10 filwaqt li l-{5,} ifisser li l-karattru għandu jiġi ripetut mill-inqas 5 darbiet iżda jista 'jkun aktar minn dak.
09 ta '09
Uża l-Output minn Kmandi Oħrajn Bl-użu ta 'grep
S'issa ħarisna t-tqabbil tal-mudell f'fajls individwali imma grep jista 'juża l-output minn kmandi oħra bħala l-input għal tqabbil tal-mudell.
Eżempju kbir ta 'dan huwa l-użu tal-kmand ps li jelenka l-proċessi attivi.
Per eżempju, imexxu l-kmand li ġej:
ps -ef
Se jintwerew il-proċessi kollha ta 'tħaddim fis-sistema tiegħek.
Tista 'tuża grep biex tfittex proċess partikolari ta' tħaddim kif ġej:
ps -ef | grep firefox