Kuinka käyttää Grep-komentoa Linuxissa

Grep-komennon ymmärtäminen käytännön esimerkeillä tiedoston sisällön suodattamiseksi ja näyttämiseksi helposti

GREP tarkoittaa "Global Regular Expression Print". Se on hyödyllinen Linuxin tarjoama komentoriviohjelma, jonka avulla voit etsiä tekstiriviä, jotka vastaavat käyttäjän antamaa mallia.

grep ottaa syötteen käyttäjältä merkkijonojen tai sanojen muodossa, joita käyttäjä haluaa etsiä tietystä tiedostosta. Komento tarkistaa sitten käyttäjän tälle mallille määrittämästä tiedostosta ja palauttaa sitten rivit, jotka vastaavat annettua mallia.

Se tekee erinomaista työtä suodattamalla tiedoston sisällön, mikä helpottaa tehtäväämme etsiä tiettyä sisältöä yksittäisistä tai useista tiedostoista samanaikaisesti.

Tässä artikkelissa tarkastellaan järjestelmän toimintaa grep komento ja joitain käytännön esimerkkejä yksityiskohtaisesti.

Vaihtoehdot saatavilla grep komento

Nämä ovat joitain perusvaihtoehtoja, joita käytät usein grep komento.

VaihtoehtoKuvaus
-iKirjainkoolla välittömään hakuun
-rVoit etsiä rekursiivisesti kaikkia tiedostoja määritetystä hakemistosta ja sen alihakemistoista
-cNäyttääksesi merkkijonon näyttökertojen kokonaismäärän
-vNäyttääksesi yhteensopimattomat rivit
-wSuodata kyseiselle sanalle erikseen käytettynä

Käyttämällä grep komento

grep komentoa käytetään yleensä putken (|) apuohjelma. Se voidaan toteuttaa shell pipellä, kun haluat käyttää sitä joidenkin muiden Linux-komentojen kanssa. Siitä huolimatta, grep voidaan käyttää myös yksittäin ilman putkea (|) apuohjelma.

Katsotaanpa joitain tiedoston perussyntakseja grep komento pipe-apuohjelman kanssa ja ilman.

Haluan ensin näyttää sinulle esimerkkitekstitiedoston, jota käytän havainnollistamaan grep komento.

INTIA ON KAUNIS RAUHARAKASTAVIEN IHMISTEN MAA. Intia seisoo kolmella lainsäätäjän, toimeenpanovallan ja oikeuslaitoksen pilarilla. Intia on kaunis rauhaa rakastavien ihmisten maa. Intia välittää ihmisistä, koska sen resurssi on karteesiset koordinaatit kaikkien karteesisten koordinaattien tärkeys. Seuraavassa on kaksi tyhjää riviä. härkäkärryjen käyttö on kylässä yleinen näky maatalouden askareissa. Tämä on mallitiedoston loppu.

grep käytetty putken kanssa ( | )apuohjelma

grep komento voidaan toteuttaa yhdessä muiden Linux-komentojen kanssa shell-putkia käyttämällä. Kuten käyttämällä kissa -komento näyttää tiedoston sisällön, mutta samalla putkittaa tulosteen käyttämällä grep -komento näyttää vain sen sisällön, jonka haluat nähdä. Tämä tulee selvemmäksi, kun käymme esimerkin läpi.

Syntaksi:

[komento] | grep [merkkijono]

Esimerkki:

cat sample.txt | grep lainsäätäjä

Tässä olen käyttänyt kissa -komento näyttää joitakin rivejä "sample.txt"-tiedostosta. Vain ne rivit tulee näyttää, jotka sisältävät sanan "lainsäätäjä" ja jättää muut rivit huomioimatta.

Lähtö:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature intia seisoo kolmella lainsäädäntövallan, toimeenpanovallan ja oikeuslaitoksen pilarilla. gaurav@ubuntu:~/työtila$

grep käytetty ilman putkea ( | )apuohjelma

grep voidaan käyttää jopa suoraan yksittäisenä komentona ilman putkea ( | ) apuohjelma.

Syntaksi:

grep [haettava merkkijono] [tiedostonimi]

Esimerkki:

grep Intia sample.txt

Lähtö:

Intia on kaunis rauhaa rakastavien ihmisten maa. Intia välittää ihmisistä voimavaranaan

Näin ollen olen käyttänyt grep komento suoraan suodattaaksesi rivit, jotka sisältävät merkkijonon "Intia" tekstitiedostosta "sample.txt".

Kirjainkoolla ei ole merkitystä hakutoiminnolla grep komento

Linux on erittäin varovainen kirjainkoon herkkyyden suhteen, kun käynnistämme komennot päätteellä. Tämä edellyttää, että käyttäjä on varovainen komentoon lisätyn merkkijonon kirjainkoon suhteen.

Katsotaanpa tätä esimerkin kautta.

grep peace sample.txt

Tässä tapauksessa emme saa tulosta, koska mallitiedostossa ei ole sanaa "rauha". Meillä on sana "Peace" isolla P-kirjaimella. Sana on sama, mutta kun käytämme grep -komento ilman vaihtoehtoja, se etsii tiedostosta tarkan vastaavuuden, huomioimatta kirjainkoon muutoksia.

Tämän epäselvyyden välttämiseksi voit yksinkertaisesti käyttää -i vaihtoehto, joka kirjaimellisesti kertoo grep komento "Unohda tapaus, johon olen laittanut merkkijonon, ja etsi vain tiedostosta kaikki vastaavat kuviot."

Syntaksi:

grep -i [merkkijono] [tiedostonimi]

Esimerkki:

grep -i peace sample.txt

Lähtö:

INTIA ON KAUNIS RAUHARAKASTAVIEN IHMISTEN MAA. Intia on kaunis rauhaa rakastavien ihmisten maa.

Kaikki vastaavat rivit näytetään riippumatta tapauksesta, jossa vastaava merkkijono on.

Rekursiivinen haku käyttäen grep komento

The -r -vaihtoehto etsii kaikki tiedostot hakemistosta ja kaikista sen alihakemistoista, jotka vastaavat käyttäjän komennossa antamaa merkkijonomallia.

Syntaksi:

grep -i -r [merkkijono] [tiedostopolku]

Esimerkki:

grep -i -r tomcat /home/gaurav/työtila

Merkkijono tässä on "tomcat" ja se etsitään hakemistotyötilasta. Kaikki "työtila"-hakemiston alihakemistot ja tiedostot myös tarkistetaan vastaamaan annettua merkkijonomallia.

Lähtö:

./context_log.policy:// catalina.policy - Tomcat 7:n suojauskäytäntöjen käyttöoikeudet ./context_log.policy:// Huomautus: Jos tomcat-juli.jar on paikassa ${catalina.base} eikä ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "file:${catalina.home }/bin/tomcat-juli.jar" { ./context_log.policy: permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JAR:t ./catalina.properties:# - Tomcat API JARit ./catalina.properties:# - Tomcat JARit ./catalina.properties:# - Yleiset ei-Tomcat JARit ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catal:#ina. tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.500 /server.xml: polkunimi="conf/tomcat-users.xml" /> ./server.xml: 

MERKINTÄ: Kun käytät -r vaihtoehto kanssa grep -komennolla meidän on annettava tiedoston polku, ei tiedoston nimeä

Hae vain kokonaisia ​​sanoja grep komento

Usein on niin, että etsit yhtä sanaa, mutta päädyt täyttämään terminaalisi vastaavilla riveillä, jotka sisältävät vastaavan sanasi, mutta eivät yksittäisenä sanana. Saatat nähdä rivit, jotka sisältävät joitakin sanoja, joiden alaosa on kirjoittamasi merkkijono.

Oletko hämmentynyt tästä? Älä huoli, se on paljon helpompi ymmärtää, kun saat esimerkin.

Esimerkki:

Tässä haluan etsiä yksittäistä sanaa "cart" ja näyttää kaikki rivit, jotka vastaavat tätä sanaa tiedostossa "sample.txt".

grep -i cart sample.txt

Lähtö:

Karteesiset koordinaatit kaikkien suorakulmaisten koordinaattien tärkeys. härkäkärryjen käyttö on kylässä yleinen näky maataloustöissä Kärryt katosivat pojan jättäessä sen irti.

Tulosteessa voit havaita, että sana 'Cartees' sisältää myös sanan 'kärry' ja siten myös sanan 'Cartees' sisältävät rivit näytetään, vaikka emme haluakaan niiden näkyvän.

Voit käyttää -w vaihtoehto kanssa grep komento tämän epäselvyyden ratkaisemiseksi.

Syntaksi:

grep -i -w [merkkijono] [tiedostonimi]

Esimerkki:

grep -i -w cart sample.txt

Lähtö:

härkäkärryjen käyttö on kylässä yleinen näky maatalouden askareissa. Kärry katosi, kun poika jätti sen irti. 

Nyt, kun olet käyttänyt -w vaihtoehto kanssa grep saat vain rivit, joilla sanaa "kärry" käytetään kokonaisuudessaan.

Käänteinen haku käyttämällä grep komento

grep komentoa voidaan käyttää myös päinvastoin. Voimme käyttää grep komento päinvastoin piilottamalla vastaavat rivit ja näyttämällä vain ne rivit, joista vastaavuutta ei löydy. Voit tehdä tämän käyttämällä -v vaihtoehto kanssa grep komento.

Syntaksi:

grep -i -v [merkkijono] [tiedostonimi]

Esimerkki:

grep -i -v resurssi sample.txt

Lähtö:

INTIA ON KAUNIS RAUHARAKASTAVIEN IHMISTEN MAA. Intia seisoo kolmella lainsäätäjän, toimeenpanovallan ja oikeuslaitoksen pilarilla. Intia on kaunis rauhaa rakastavien ihmisten maa. karteesiset koordinaatit kaikkien karteesisten koordinaattien tärkeys. härkäkärryjen käyttö on kylässä yleinen näky maatalouden askareissa. Tämä on mallitiedoston loppu.

Tulosteessa näytetään kaikki muut rivit paitsi rivi, joka sisältää sanan "resurssi".

Vastaavan merkkijonon esiintymien laskeminen

Tuotos grep komento on yleensä hyvin pitkä, jos tiedoston tiedot ovat laajoja. Mitä enemmän otteluita, sitä pidempiä ovat tulosteet grep komento. Linux tarjoaa sinulle vaihtoehdon, jossa voit näyttää ottelun esiintymisten lukumäärän.

Syntaksi:

grep -i -c [merkkijono] [tiedostonimi]

Esimerkki:

grep -i -c intia sample.txt

Lähtö:

gaurav@ubuntu:~/työtila$ grep -i -c intia sample.txt 4 gaurav@ubuntu:~/työtila$

Tässä tulos on numero, joka on sanan "Intia" esiintymisten lukumäärä tiedostossa sample.txt.

MERKINTÄ: Olen käyttänyt -i Vaihtoehto jokaisessa esimerkissä vain ollaksesi turvassa kirjainkoon herkkyysongelman kanssa. Jos olet varma etsimäsi sanan kirjainkoosta, voit turvallisesti jättää sanan pois -i vaihtoehto.

Johtopäätös

Olemme oppineet sen peruskäytön grep komento Linux-järjestelmissä tässä opetusohjelmassa. Opimme myös esittelemään erilaista sisältöä, joka sopii parhaiten tarpeisiimme ja olemaan ruuhkautumatta terminaaliin runsailla jonoilla. grep komento säästää varmasti aikaa, jos sitä käytetään suurten tietojoukkojen skannaukseen.