Tässä artikkelissa selitämme grep -apuohjelman käyttöä eri esimerkeillä. Käytämme Debian 10: tä selittääksemme tässä artikkelissa mainitut komennot ja menetelmät.
Grepin asennus
Grep on asennettu useimpiin Linux -jakeluihin. Jos se kuitenkin puuttuu järjestelmästäsi, voit asentaa sen seuraavalla tavalla terminaalissa:
$sudo apt-get install pito
Grepin käyttäminen
Tässä on grep -komennon perussyntaksi. Se alkaa grep: llä, jota seuraa joitain vaihtoehtoja ja hakuehtoja ja päättyy sitten tiedostonimeen.
$pito [vaihtoehtoja]KUVIO[TIEDOSTO ...]
Hae tiedostoja
Jos haluat etsiä tiedostonimeä hakemistosta, joka sisältää tietyn merkkijonon, voit käyttää grepia seuraavalla tavalla:
$ls -he | pito -imerkkijono
Esimerkiksi, jos haluat etsiä tiedostonimen, joka sisältää merkkijonon testata , komento olisi:
$ls-he| pito- minätestataTämä komento luettelee kaikki tiedostot, jotka sisältävät merkkijonon testata .
Etsi merkkijono tiedostosta
Voit etsiä merkkijonoa tietystä tiedostosta käyttämällä seuraavaa komentosyntaksia:
$pitomerkkijonon tiedostonimiEsimerkiksi merkkijonon etsimiseen testata nimisessä tiedostossa testitiedosto 1 , olemme käyttäneet seuraavaa komentoa :
$pitotyöntekijän testitiedosto 1Yllä oleva tulos on palauttanut lauseen testitiedosto 1 joka sisältää merkkijonon työntekijä .
Etsi merkkijono useista tiedostoista
Voit etsiä merkkijonoa useista tiedostoista käyttämällä seuraavaa komentosyntaksia:
$pitomerkkijono tiedostonimi1 tiedostonimi2Esimerkiksi merkkijonotyöntekijän etsimiseksi kahdesta tiedostostamme testfile1 ja testfile2 olemme käyttäneet seuraavaa komentoa:
$pitotyöntekijän testitiedosto1 testitiedosto2Yllä oleva komento luettelee kaikki rivit, jotka sisältävät merkkijonotyöntekijän sekä tiedostoista testfile1 että testfile2.
Voit myös käyttää jokerimerkkiä, jos kaikki tiedostonimet alkavat samalla tekstillä.
$pitomerkkijonon tiedostonimi*Kuten, jos otamme yllä olevan esimerkin, jossa tiedostomme olivat testitiedosto1 ja testitiedosto2 , komento olisi:
$pitotyöntekijän testitiedosto*Etsi merkkijonoa tiedostosta jättämättä huomiotta merkkijonon kirjainta
Useimmiten olet törmännyt siihen, kun etsit jotain grep -ohjelmalla, mutta et saa lähtöä. Tämä johtuu siitä, että merkkijono etsitään tapauskohtaisesti. Kuten esimerkissämme, jos käytämme sitä virheellisesti Työntekijä sijasta työntekijä , se palauttaa nollan, koska tiedostomme sisältää merkkijonon työntekijä pienillä kirjaimilla.
Voit kehottaa grepia jättämään hakumerkkijonon huomiotta käyttämällä –i -lippua grepin jälkeen seuraavasti:
$pito- merkkijonon tiedostonimiKäyttämällä –i -lippua komento suorittaa kirjainkokoherkän haun ja palauttaa kaikki merkkijonon sisältävät rivit työntekijä siinä ilman, että kirjaimet ovat isoja tai pieniä.
Hae käyttämällä säännöllistä lauseketta
Oikein käytettynä säännöllinen lauseke on erittäin tehokas grep -ominaisuus. Grep -komennolla voit määrittää säännöllisen lausekkeen, jossa on alku- ja loppuavainsana. Tällöin sinun ei tarvitse kirjoittaa koko riviä grep -komennolla. Seuraavaa syntaksia voidaan käyttää tähän tarkoitukseen.
$pitoaloittava avainsana.*endKeyword -tiedostonimiEsimerkiksi etsiessään riviä tiedostosta nimeltä testfile1, joka alkaa merkkijonolla ja päättyy merkkijonotiedoilla, olemme käyttäneet seuraavaa komentoa:
$pitoTämä.*tietojen testitiedosto 1Se tulostaa koko rivin testitiedosto 1 sisältää lausekkeen (avainsana tämä ja päättyvät avainsanatiedot).
Tulosta tietty määrä rivejä hakusanan jälkeen/ennen
Voit myös näyttää tietyn rivien määrän tiedostossa ennen merkkijonon vastaavuutta/sen jälkeen sekä vastaavan merkkijonon. Tätä tarkoitusta varten voidaan käyttää seuraavaa syntaksia:
$pito -TO <N>merkkijonon tiedostonimiSe näyttää N rivien määrän sen jälkeen, kun merkkijono on sovitettu määritettyyn tiedostoon, mukaan lukien täsmäytetty merkkijono.
Esimerkiksi tämä on esimerkkitiedostomme nimeltä testitiedosto 2 .
Seuraava komento antaa merkkijonon sisältävän vastaavan rivin työntekijä , ja sen jälkeen 2 riviä.
$pito-TO2–Työntekijän testitiedosto2Jos haluat näyttää N -rivimäärän ennen vastaavaa merkkijonoa tietyssä tiedostossa, käytä seuraavaa syntaksia:
$pito -B <N>merkkijonon tiedostonimiJos haluat näyttää N -rivin jonon ympärillä tietyssä tiedostossa, käytä seuraavaa syntaksia:
$pito -C <N>merkkijonon tiedostonimiHaun korostaminen
Grep tulostaa oletusarvoisesti vastaavat rivit, mutta ei näytä, mikä rivin osa on sovitettu. Jos käytät –väriasetusta grep: n kanssa, se näyttää, missä työstöjonot näkyvät tiedostossasi. Grep käyttää oletuksena punaista väriä korostamiseen.
Tätä tarkoitusta varten voidaan käyttää seuraavaa syntaksia:
$pitomerkkijonon tiedostonimi--väriTulosten lukumäärä lasketaan
Jos haluat laskea, kuinka monta kertaa tietty sana esiintyy tietyssä tiedostossa, voit käyttää grep –c -vaihtoehtoa. Se palauttaa vain osumien määrän itse ottelujen sijaan. Tätä tarkoitusta varten voidaan käyttää seuraavaa syntaksia:
$pito–C -merkkijonon tiedostonimiEsimerkkitiedosto näyttää tältä:
Seuraavassa on esimerkki komennosta, joka palautti sanan kertojen määrän tiedosto ilmestyi tiedostossa nimeltä testitiedosto 3 .
Käänteinen haku
Joskus haluat suorittaa käänteisen haun, joka näyttää kaikki rivit paitsi syötteen. Voit tehdä tämän käyttämällä -v -lippua ja grep:
$pito–V merkkijonon tiedostonimiEsimerkiksi, jos haluat näyttää kaikki tiedoston rivit testitiedosto 3 jotka eivät sisällä sanaa tili niissä, olemme käyttäneet seuraavaa komentoa:
$pito–V tilin testitiedosto 3Grepin käyttäminen muiden komentojen kanssa
Grepillä voidaan myös suodattaa vaadittu tulos eri komentojen tulostuksesta. Esimerkiksi apt - asennettu luettelo komentoa, haluat löytää vain automaattisesti asennetut paketit, voit suodattaa tuloksen grep -ohjelmalla seuraavasti:
$sopiva-asennettulista| pitoAutomaattinen
Samoin lscpu tarjoaa yksityiskohtaisia tietoja suorittimesta. Jos olet vain kiinnostunut CPU -arkkitehtuuria koskevista tiedoista, voit suodattaa sen pois seuraavalla komennolla:
$lscpu| pitoArkkitehtuuriTässä artikkelissa olemme kuvanneet joitain esimerkkejä, jotka auttavat sinua ymmärtämään grep -komentoja ja niiden käyttöä eri olosuhteissa. Vahva ote grep -komennosta voi säästää paljon aikaa, jos sinun on tarkasteltava suuria kokoonpano- tai lokitiedostoja ja luettava hyödyllisiä tietoja niiden kautta.