Esimerkki 1: Tietyn merkkijonon etsiminen tiedostosta
Tämä on egrep-komennon yleisin käyttö. Sinun on määritettävä merkkijono, jonka haluat etsiä, ja tiedostonimi, josta haluat etsiä merkkijonon. Tulos näyttää sitten koko rivin, joka sisältää haetun merkkijonon.
Syntaksi:
$ egrep “search_string” tiedostonimiEsimerkki:
$ egrep debian samplefile.txtEtsin tässä esimerkissä sanaa "debian" määritetystä tekstitiedostosta. Näet, kuinka tulokset näyttävät koko rivin, joka sisältää sanan "debian":
Esimerkki 2: Tietyn merkkijonon etsiminen useista tiedostoista
Egrep-komennolla voit etsiä merkkijonoa useista samassa hakemistossa olevista tiedostoista. Sinun täytyy vain olla hieman tarkempi tarjoamalla "malli" haetuille tiedostoille. Tämä käy selvemmäksi esittelemämme esimerkin avulla.
Syntaksi:
$ egrep "search_string" tiedostonimen_malliEsimerkki:
Täällä etsimme sanaa "debian" kaikista .txt-tiedostot määrittämällä tiedostonimi seuraavasti:
$ egrep “debian” *.txt
Komento on tulostanut kaikki rivit sekä tiedostonimet, jotka sisältävät sanan "debian" kaikista .txt-tiedostot nykyisessä hakemistossa.
Esimerkki 3: Merkkijonon rekursiivinen haku koko hakemistosta
Kun haluat etsiä merkkijonoa kaikista tiedostoista hakemistosta ja sen alihakemistoista, voit tehdä sen käyttämällä -r-lippua egrep-komennolla.
Syntaksi:
$ egrep -r "haku_merkkijono" *Esimerkki:
Tässä esimerkissä etsin sanaa "näyte" koko nykyisen (Lataukset) -hakemiston tiedostoista.
$ egrep -r "näyte" *
Tulokset sisältävät kaikki rivit ja tiedostonimet, jotka sisältävät sanan "näyte" kaikista Lataukset-hakemiston tiedostoista ja sen alihakemistoista.
Esimerkki 4: Kirjainkoon erottelematon haku
-I-lipun avulla voit tulostaa tulokset hakumerkkijonon perusteella egrep-komennolla tarvitsematta huolehtia sen kirjainkoko.
Syntaksi:
$ egrep -i "search_string" tiedostonimiEsimerkki:
Täällä etsin sanaa "debian" ja haluan, että tulokset näyttävät kaikki tiedoston rivit, jotka sisältävät sanan "debian" tai "Debian, riippumatta sen tapauksesta.
$ egrep -i "search_string" tiedostonimi
Voit nähdä, kuinka -i-lippu auttoi minua hakemaan kaikki hakumerkkijonon sisältävät rivit kirjainkokoisen "epäherkän" haun avulla.
Esimerkki 5: Merkkijonon etsiminen koko sanana eikä alimerkkijonona
Kun etsit merkkijonoa tavallisesti egrepin kautta, se tulostaa kaikki merkkijonon sisältävät sanat alimerkkijonoina. Esimerkiksi etsimällä merkkijono "päällä", kaikki sanat sisältävät merkinnän "päällä", kuten "päällä", "vain", "monitori", "klooni" jne. Jos haluat, että tuloksissa näytetään vain sana ”päällä” koko sanana eikä alimerkkijonona, voit käyttää -w-lippua egrep: n kanssa.
Syntaksi:
$ egrep -w "search_string" tiedostonimiEsimerkki:
Täältä etsin merkkijonoa “päällä” näytetiedostossa:
$ egrep -i “päällä” näytetiedosto.txt
Yllä olevasta lähdöstä näet, että se sisältää myös sanan "vain". Tätä en kuitenkaan halua, koska etsin yksinomaan sanaa ”päällä”. Joten tätä komentoa käytän sen sijaan:
$ egrep -iw “päällä” näytetiedosto.txt
Nyt hakutuloksissani ovat vain rivit, jotka sisältävät sanan ”päällä” kokonaisuudessaan.
Esimerkki 6: Tulostetaan vain merkkijonon sisältävät tiedostonimet
Joskus haluamme vain hakea tiedostonimet, jotka sisältävät tietyn merkkijonon, sen sijaan että tulostamme sen sisältävät rivit. Tämä voidaan tehdä käyttämällä lippua -l (pienet L) ja egrep-komentoa.
Syntaksi:
$ egrep -l "search_string" tiedostonimen_malliEsimerkki:
Täällä etsin merkkijonoa "näyte" kaikista .txt-tiedostot nykyisessä hakemistossa:
$ egrep -l näyte *.txt
Hakutulokset tulostavat vain määritetyn merkkijonon sisältävien tiedostojen nimet.
Esimerkki 7: Vain hakumerkkijonon tulostaminen tiedostosta
Sen sijaan, että tulostat koko hakumerkkijonon sisältävän rivin, voit tulostaa merkkijonon egrep-komennolla. Merkkijono tulostetaan niin monta kertaa kuin se näkyy määritetyssä tiedostossa.
Syntaksi:
$ egrep -o "search_string" tiedostonimiEsimerkki:
Tässä esimerkissä etsin tiedostostani sanaa "Tämä".
$ egrep -o Tämä esimerkkitiedosto_.txt
Huomaa: Tämä komennon käyttö on kätevää, kun haet merkkijonoa säännöllisen lausekkeen perusteella. Selitämme säännölliset lausekkeet yksityiskohtaisesti yhdessä tulevista esimerkeistä.
Esimerkki 8: n rivin määrän näyttäminen hakumerkkijonon edessä, jälkeen tai sen ympärillä
Joskus on erittäin tärkeää tietää konteksti tiedostossa, jossa käytetään tiettyä merkkijonoa. Egrep on kätevä siinä mielessä, että sitä voidaan käyttää näyttämään jono, joka sisältää hakumerkkijonon, sekä tietyn määrän rivejä sen edessä, jälkeen ja sen ympärillä.
Tämä on esimerkkitekstitiedosto, jota käytän selittämään tulevia esimerkkejä:
N rivien lukumäärä hakumerkkijonon jälkeen:
A-lipun käyttö seuraavalla tavalla näyttää rivin, joka sisältää hakumerkkijonon ja N sen jälkeen rivien määrän:
$ egrep -AEsimerkki:
$ egrep -A 2 "näyte" näytetiedosto.txt
N rivien lukumäärä ennen hakumerkkijonoa:
B-lipun käyttäminen seuraavalla tavalla näyttää rivin, joka sisältää hakumerkkijonon ja N edellisen rivien määrän:
$ egrep -BEsimerkki:
$ egrep -B 2 "näyte" näytetiedosto.txt
N rivien lukumäärä ennen hakumerkkijonoa:
C-lipun käyttäminen seuraavalla tavalla näyttää rivin, joka sisältää hakumerkkijonon, ja N rivien määrän ennen ja jälkeen:
$ egrep -CEsimerkki:
$ egrep -C 2 "näyte" näytetiedosto.txt
Esimerkki 9: Säännöllisen lausekkeen sovittaminen tiedostoihin
Egrep-komento tulee tehokkaammaksi, kun etsit säännöllisiä lausekkeita tiedostossa olevien kiinteiden hakumerkkijonojen sijaan.
Syntaksi:
$ egrep "RegularExpressions" -nimiKerro meille, kuinka voit käyttää säännöllisiä lausekkeita egrep-haullasi:
Toisto-operaattori | Käyttää |
? | Edellinen kohta ennen ? on valinnainen ja sovitetaan enintään kerran
|
* | Edeltävä nimike ennen * täsmää nollaan tai useammin |
+ | Edellinen kohde ennen +: ta sovitetaan yhden tai useamman kerran |
n | Edellinen kohde täsmää tarkalleen n kertaa. |
n, | Edeltävä kohde on sovitettu vähintään n kertaa |
, m | Edellinen kohde on sovitettu enintään m kertaa |
n, m | Edeltävä kohta on sovitettu vähintään n kertaa, mutta enintään m kertaa |
Esimerkki:
Seuraavassa esimerkissä rivit, jotka sisältävät seuraavan lausekkeen, vastaavat:
alkaa "Gnome" ja päättyy "ohjelmat"
Esimerkki 10: Hakumerkkijonon korostaminen
Kun asetat GREP_OPTIONS-ympäristömuuttujan alla esitetyllä tavalla, saat tuotoksesi hakutuloksissa korostetulla hakusarjalla / kuviolla:
$ sudo export GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'Voit sitten etsiä merkkijonoa millä tahansa tavalla, jonka olemme kuvanneet tämän artikkelin esimerkeissä.
Esimerkki 11: Käänteisen haun suorittaminen tiedostossa
Käänteishaulla tarkoitamme, että egrep-komento tulostaa kaiken tiedostosta, paitsi rivit, jotka sisältävät hakumerkkijonon. Selitämme käänteishakua egrepin avulla seuraavalla esimerkkitiedostolla. Olemme tulostaneet tiedoston sisällön cat-komennolla:
Syntaksi:
$ egrep -v "search_string" tiedostonimiEsimerkki:
Mainitsemastamme esimerkkitiedostosta haluamme jättää pois rivin, joka sisältää sanan "kaksi", joten käytämme seuraavaa komentoa:
$ egrep -v "two" samplefile_.txt
Näet, kuinka tulos sisältää kaiken esimerkkitiedostosta, lukuun ottamatta toista riviä, joka sisälsi hakumerkkijonon "two".
Esimerkki 12: Käänteisen haun suorittaminen useiden ehtojen / hakumallin perusteella
-V-lipun avulla voit myös tehdä egrep-komennon suorittamaan käänteisen haun useamman kuin yhden hakumerkkijonon / kuvion perusteella.
Käytämme samaa esimerkkitiedostoa, jonka mainitsimme esimerkissä 11 tämän skenaarion selittämiseksi.
Syntaksi:
$ egrep -v -e "search_string" / "pattern" -e "search_string" / "pattern"… Tiedoston nimi
Esimerkki:
Mainitsemastamme esimerkkitiedostosta haluamme jättää pois rivit, jotka sisältävät sanat "yksi" ja "kaksi", joten käytämme seuraavaa komentoa:
$ egrep -v -e "yksi" -e "kaksi" näytetiedosto_.txtOlemme toimittaneet kaksi sanaa, jotka jätetään pois -e-lipun käytöstä, joten tulos näkyy seuraavasti:
Esimerkki 13: Hakumerkkijonoa vastaavien rivien määrän tulostaminen
Sen sijaan, että tulostat haetun merkkijonon tiedostosta tai sitä sisältävistä riveistä, voit laskea ja tulostaa merkkijonoa vastaavien rivien määrän egrep-komennolla. Tämä määrä voidaan noutaa käyttämällä -c-lippua egrep-komennolla.
Syntaksi:
$ egrep -c "search_string" tiedostonimiEsimerkki:
Tässä esimerkissä käytämme -c-lippua laskemaan rivien määrä, jotka sisältävät sanan "Tämä" näytetiedostossamme:
$ egrep -c "Tämä" tiedostonimi
Voit myös käyttää käänteistä hakutoimintoa tässä laskeaksesi ja tulostaaksesi rivien määrän, jotka eivät sisällä hakumerkkijonoa:
$ grep -v -c "search_string" tiedostonimi
Esimerkki 14: Näytetään rivinumero, johon merkkijono on sovitettu
-N-lipun avulla voit tehdä egrep-komennon tulostaaksesi sovitetun rivin yhdessä rivinumeron kanssa, joka sisältää hakumerkkijonon.
Syntaksi:
$ grep -n "search_string" tiedostonimiEsimerkki:
$ grep -n "Tämä" näytetiedosto_.txt
Näet, kuinka rivinumerot näytetään hakutuloksissa.
Esimerkki 15: Näytetään tiedoston sijainti, jossa hakumerkkijono vastaa
Jos haluat tietää tiedoston sijainnin, jossa hakumerkkijono on olemassa, voit käyttää -b-lippua egrep-komennolla.
$ grep -o -b "search_string" tiedostonimiEsimerkki:
$ grep -o -b "Tämä" näytetiedosto_.txt
Hakutulokset tulostavat tiedoston tavueron, jossa hakusana on.Tämä oli yksityiskohtainen egrep-komennon käyttö. Käyttämällä tässä artikkelissa selitettyjen lippujen yhdistelmää voit tehdä merkityksellisempiä ja monimutkaisempia hakuja tiedostoistasi.