Linux grep -komentoa käytetään tuloksen suodattamismenetelmänä. GREP tarkoittaa globaalia säännöllistä lausekirjoitinta ja siksi sen käyttämiseksi tehokkaasti sinulla on oltava jonkin verran tietoa säännöllisistä lausekkeista.
Tässä artikkelissa opit useita esimerkkejä, joiden avulla voit ymmärtää grep-komennon.
01/09Miten etsiä merkkijono tiedostoon GREP

Kuvittele, että sinulla on tekstitiedosto, jota kutsutaan kirjoiksi, jolla on seuraavat lastenkirjamerkinnät:
- Robin Hood
- Pieni Punahilkka
- Peter Pan
- Kultakutri ja kolme karhua
- Lumikki ja seitsemän kääpiötä
- Pinokkio
- Kissa hatussa
- Kolme pientä porsasta
- Gruffalo
- Jali ja suklaatehdas
Jos haluat löytää kaikki kirjat otsikossa "The", käytä seuraavaa syntaksia:
grep KirjatSeuraavat tulokset palautetaan:
- Kultakutri ja kolme karhua
- Lumikki ja seitsemän kääpiötä
- Kissa hatussa
- Kolme pientä porsasta
- Gruffalo
- Jali ja suklaatehdas
Kussakin tapauksessa sana "The" korostuu.
Haku on isokokoista, joten jos jollakin nimikkeellä oli "The" sijasta "The", sitä ei olisi palautettu.
Jos haluat jättää asian huomiotta, voit lisätä seuraavan vaihtoehdon:
kirjoita kirjat --ignore-caseVoit käyttää myös -i-kytkintä seuraavasti:
Jatka lukemista alla
02/09Etsi merkkijono tiedostoon, jossa käytetään jättikortteja
Grep-komento on erittäin voimakas. Voit käyttää suodattimien tuloksia suodatustekniikoiden joukossa.
Tässä esimerkissä näytän sinulle, miten etsiä merkkijono tiedostoon, jossa käytetään yleismerkkejä.
Kuvittele, että sinulla on tiedosto nimeltä paikkoja, joilla on seuraavat skotlantilaiset paikkamerkinnät:
AberdeenAberystwythAberlourInverurieInvernessNewburghuudet hirvieläimetuusi gallowayGlasgowedinburghJos haluat etsiä kaikki paikat, joissa nimi on inver, käytä seuraavaa syntaksia:
grep inver * paikkojaTähtimerkki (*) -merkki on 0 tai useampi. Siksi jos sinulla on paikka kutsutaan inver tai paikka nimeltä Inverness sitten molemmat palautetaan.
Toinen vaihtoehto, jota voit käyttää, on ajanjakso (.). Voit käyttää tätä vastaamaan yhtä kirjainta.
grep inver.r paikkojaYllä oleva komento löytäisi paikkoja, joita kutsutaan inveruriksi ja invertereiksi, mutta eivät löydä invereerie, koska kahden r: n välillä voi olla vain yksi jake, kuten yksittäinen kausi.
Kausivaramerkki on hyödyllinen, mutta se voi aiheuttaa ongelmia, jos sinulla on yksi osana etsimääsi tekstiä.
Katso esimerkiksi tätä verkkotunnusten luetteloa
- linux.about.com
- pcsupport.about.com
- mp3.about.com
- minecraft.about.com
- androidgames.about.com
- netforbeginners.about.com
- everydaylinuxuser.com
- google.co.uk
- google.au
- direct.gov.uk
Löydät kaikki. .Coms -tuotteet, jonka voit etsiä vain seuraavan syntaksin avulla:
grep * about * verkkotunnuksetYllä oleva komento laskisi, jos luettelossa oli seuraava nimi:
- everydaylinuxuser.com/about.html
Voit siis kokeilla seuraavanlaista syntaksia:
grep * about.com domainnamesTämä toimisi kunnolla, ellei ole olemassa verkkotunnusta, jolla on seuraava nimi:
aboutycom.comJos haluat todella etsiä termiä about.com, sinun on vältettävä piste seuraavasti:
grep * about .com domainnamesLopullinen jakaja, joka näyttää sinulle on kysymysmerkki, joka tarkoittaa nollaa tai yhtä hahmoa.
Esimerkiksi:
grep? ber paikkamerkitYllä oleva komento palaisi aberdeen, aberystwyth tai jopa berwick.
Jatka lukemista alla
03/09Etsi jouset alussa ja loppupisteessä Käyttämällä grep
Karaatin (^) ja dollari ($) -merkin avulla voit etsiä kuviot rivien alussa ja lopussa.
Kuvittele, että sinulla on jalkapallo-tiedosto, jossa on seuraavat tiiminimet:
- Blackpool
- Liverpool
- Manchester City
- Leicester City
- Manchester United
- Newcastle United
- FC Manchester United
Jos haluat löytää kaikki Manchesterin kanssa alkaneet joukkueet, käytä seuraavaa syntaksia:
Grep ^ Manchester joukkueetYllä oleva komento palaisi Manchester Cityyn ja Manchester Unitediin, mutta ei FC United Manchester.
Vaihtoehtoisesti voit löytää kaikki joukkueet, jotka päättyvät Unitedin kanssa käyttäen seuraavaa syntaksia:
grep United $ joukkueetYllä oleva komento palaisi Manchester Unitediin ja Newcastlen Unitediin, mutta ei FC United Of Manchester.
04/09Laskeminen Ottelujen määrä käyttäen grep
Jos et halua palauttaa todellisia viivoja, jotka vastaavat kuvioita käyttämällä grep-tiedostoa, mutta haluat vain tietää, kuinka monta on olemassa, voit käyttää seuraavaa syntaksia:
grep -c kuvion syöttötiedostoJos kuvio sovitettiin kahdesti, numero 2 palautetaan.
Jatka lukemista alla
05/09Kaikkien ehtojen löytäminen, jotka eivät sovi grepilla
Kuvittele, että sinulla on luettelo paikkamerkinnöistä seuraavien maiden kanssa:
- aberdeen Skotlanti
- Glasgow Skotlanti
- liverpool Englanti
- colwyn bay
- Lontoo, Englanti
Olet ehkä huomannut, että Colwynin lahdella ei ole siihen liittyvää maata.
Voit etsiä paikkoja missä maassa voit käyttää seuraavaa syntaksia:
grep maa $ paikkojaTulosten palautukset olisivat kaikki paikat paitsi Colwyn Bay.
Tämä ilmeisesti toimii vain paikoissa, jotka päätyvät maahan (tuskin tieteellinen).
Voit kääntää valinnan seuraavalla syntaksilla:
grep -v maa $ paikkojaTämä löytäisi kaikki paikat, jotka eivät päätyneet maalle.
06/09Miten löytää tyhjät rivit tiedostossa Käyttämällä grep
Kuvittele, että sinulla on syöttötiedosto, jota kolmannen osapuolen sovellus käyttää, joka lakkaa lukemasta tiedostoa, kun se löytää tyhjän rivin seuraavasti:
- aberdeen skotlanti
- inverly skotlanti
- liverpool england
- colwyn bay wales
Kun sovellus saapuu linjalle liverpoolin jälkeen, se lakkaa lukemasta merkitystä, kun colwyn-lahti jää kokonaan pois.
Voit hakea tyhjiä viivoja käyttäen seuraavia syntaksia:
grep ^ $ paikkojaValitettavasti tämä ei ole erityisen hyödyllinen, koska se vain palauttaa tyhjät rivit.
Voit tietenkin saada laskemalla tyhjien rivien lukumäärän tarkistaaksesi, onko tiedosto voimassa seuraavalla tavalla:
grep -c ^ $ paikkojaOlisi kuitenkin hyödyllisempää tietää rivinumerot, joilla on tyhjä rivi, jotta voit korvata ne. Voit tehdä sen seuraavalla komennolla:
grep -n ^ $ paikkojaJatka lukemista alla
07/09Kuinka etsiä suurten tai pienempien merkkien rivejä käyttäen grep
Käyttämällä grep-toimintoa voit määrittää, mitä tiedoston viivoilla on isoja kirjaimia seuraavan syntaksin avulla:
grep 'A-Z' tiedostonimiKaaret antavat sinun määrittää merkkijoukon. Yllä olevassa esimerkissä se vastaa mitä tahansa merkkiä, joka on A: n ja Z: n välillä.
Siksi pieniksi kirjaimiksi voidaan käyttää seuraavaa syntaksia:
grep 'a-z' tiedostonimiJos haluat vastata vain kirjaimia eikä numeerisia tai muita symboleita, voit käyttää seuraavaa syntaksia:
grep 'a-zA-Z' tiedostonimiVoit tehdä samoja numeroita seuraavasti:
grep '0-9' tiedostonimi 08/09Etsitään toistuvia kuvioita käyttäen grep
Voit hakea toistuvaa kuvioita käyttämällä kihara-elementtejä {}.
Kuvittele, että sinulla on tiedosto puhelinnumeroilla seuraavasti:
- 055-1234
- 055-4567
- 555-1545
- 444-0167
- 444-0854
- 4549-2234
- x44-1234
Tiedät, että numeron ensimmäinen osa on kolme numeroa ja haluat löytää ne viivat, jotka eivät vastaa tätä mallia.
Edellisestä esimerkistä tiedät, että 0-9 palauttaa kaikki tiedoston numerot.
Tässä tapauksessa haluamme linjat, jotka alkavat kolmella numerolla ja jota seuraa yhdysviiva (-). Voit tehdä sen seuraavalla syntaksilla:
grep "^ 0-9 0-9 0-9 -" numerotKuten aiemmista esimerkeistä tiedetään, karaatti (^) tarkoittaa, että viivan on alettava seuraavalla kuvioinnilla.
0-9 etsii mitä tahansa numeroa välillä 0 ja 9. Koska tämä sisältyy kolme kertaa, se vastaa 3 numeroa. Lopuksi on yhdysviiva, joka merkitsee, että yhdysviitteen täytyy onnistua kolmella numerolla.
Haarukoiden avulla voit tehdä haun pienemmäksi seuraavasti:
grep "^ 0-9 {3 } -" numerotSlash lähtee {kiinnike niin, että se toimii osana säännöllistä lauseketta, mutta pohjimmiltaan tämä tarkoittaa 0-9 {3}, mikä tarkoittaa mitä tahansa numeroa välillä 0 - 9 kolme kertaa.
Kiertokappaleita voidaan käyttää myös seuraavasti:
{5,10}{5,}{5,10} tarkoittaa, että etsitettävä merkki on toistettava vähintään 5 kertaa, mutta enintään 10, kun taas {5,} tarkoittaa, että merkki on toistettava vähintään viisi kertaa, mutta se voi olla enemmän kuin se.
Jatka lukemista alla
09/09Muiden komennoiden tulosteen käyttäminen Grep-ohjelman käyttäminen
Tähän mennessä olemme tarkastelleet kuvion sovittamista yksittäisissä tiedostoissa, mutta grep voi käyttää muiden komentojen lähtöä mallin sovittamiseksi.
Hyvä esimerkki tästä on ps-komennolla, jossa luetellaan aktiiviset prosessit.
Esimerkiksi suorita seuraava komento:
ps -efKaikki käynnissä olevat prosessit näkyvät järjestelmässäsi.
Voit käyttää grep-ohjelmaa etsimään tietyn käynnissä olevan prosessin seuraavasti:
ps -ef | grep firefoxYhteenveto
Grep-komento on perustavanlaatuinen Linux-komento, ja se on sellainen, joka kannattaa oppimista, koska se tekee elämästäsi helpompaa etsittäessä tiedostoja ja prosesseja päätelaitteen käytön aikana.




