Grep -komento Linuxissa

Grep Command Linux



Grep (maailmanlaajuinen säännöllisen lausekkeen tulostus) -komento on tehokkain ja säännöllisesti käytetty Linux-komentorivityökalu. Grepin avulla voit etsiä hyödyllistä tietoa määrittämällä hakukriteerit. Se etsii tiettyä lausekemallia määritetystä tiedostosta. Kun se löytää osuman, se tulostaa kaikki tiedoston rivit, jotka vastasivat määritettyä mallia. Siitä on hyötyä, kun joudut suodattamaan suuria lokitiedostoja.

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ätestata

Tä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 tiedostonimi

Esimerkiksi merkkijonon etsimiseen testata nimisessä tiedostossa testitiedosto 1 , olemme käyttäneet seuraavaa komentoa :

$pitotyöntekijän testitiedosto 1

Yllä 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 tiedostonimi2

Esimerkiksi merkkijonotyöntekijän etsimiseksi kahdesta tiedostostamme testfile1 ja testfile2 olemme käyttäneet seuraavaa komentoa:

$pitotyöntekijän testitiedosto1 testitiedosto2

Yllä 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 tiedostonimi

Kä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 -tiedostonimi

Esimerkiksi etsiessään riviä tiedostosta nimeltä testfile1, joka alkaa merkkijonolla ja päättyy merkkijonotiedoilla, olemme käyttäneet seuraavaa komentoa:

$pitoTämä.*tietojen testitiedosto 1

Se 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 tiedostonimi

Se 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 testitiedosto2

Jos haluat näyttää N -rivimäärän ennen vastaavaa merkkijonoa tietyssä tiedostossa, käytä seuraavaa syntaksia:

$pito -B <N>merkkijonon tiedostonimi

Jos haluat näyttää N -rivin jonon ympärillä tietyssä tiedostossa, käytä seuraavaa syntaksia:

$pito -C <N>merkkijonon tiedostonimi

Haun 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äri

Tulosten 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 tiedostonimi

Esimerkkitiedosto 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 tiedostonimi

Esimerkiksi, 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 3

Grepin 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| pitoArkkitehtuuri

Tä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.