Hvordan bruke Grep Command i Linux

Forstå grep-kommandoen med praktiske eksempler for enkelt å filtrere og vise filinnholdet

GREP står for "Global Regular Expression Print". Det er et nyttig kommandolinjeverktøy levert av Linux, for å søke etter tekstlinjen som samsvarer med mønsteret gitt av brukeren.

grep tar innspill fra brukeren i form av strenger eller ord som brukeren ønsker å søke i en bestemt fil. Kommandoen sjekker deretter filen spesifisert av brukeren for dette mønsteret og returnerer deretter linjene som samsvarer med mønsteret som er oppgitt.

Den gjør en utmerket jobb ved å filtrere innholdet i en fil og dermed gjøre oppgaven vår enklere å søke etter bestemt innhold på enkelt eller flere filer samtidig.

I denne artikkelen, la oss se på funksjonen til grep kommando med noen praktiske eksempler i detalj.

Alternativer tilgjengelig med grep kommando

Dette er noen av de grunnleggende alternativene du vil bruke ofte med grep kommando.

AlternativBeskrivelse
-JegFor et søk uten store og små bokstaver
-rÅ søke rekursivt etter alle filene i den angitte katalogen og dens underkataloger
-cFor å vise totalt antall ganger en streng vises
-vFor å vise linjene som ikke samsvarer
-wFiltrer for det bestemte ordet brukt separat

Bruker grep kommando

grep kommandoen brukes vanligvis med røret (|) nytte. Det kan implementeres med shell pipen når du vil bruke det med noen andre Linux-kommandoer. Selv om, grep kan også brukes enkeltvis uten rør (|) nytte.

La oss se på noen av de grunnleggende syntaksene til grep kommando med og uten rørverktøyet.

La meg først vise deg eksempeltekstfilen jeg skal bruke for å illustrere grep kommando.

INDIA ER ET VAKKERT LAND MED FREDELSKE FOLK. India står på tre søyler av lovgivende, utøvende og rettsvesen. India er et vakkert land med fredselskende mennesker. India bryr seg om folket ettersom dets kartesiske koordinater er viktige for alle kartesiske koordinater. Følgende er to tomme linjer. bruk av oksevogn er et vanlig syn i bygda for de agrariske gjøremålene. Dette er slutten av eksempelfilen.

grep brukt med rør ( | )nytte

grep kommandoen kan implementeres sammen med andre Linux-kommandoer ved å bruke shell-pipene. Som å bruke katt kommandoen for å vise innholdet i filen, men samtidig overføre utdataene ved å bruke grep kommando for å vise bare innholdet du ønsker å se. Dette vil være mer tydelig når vi går gjennom eksemplet.

Syntaks:

[kommando] | grep [streng]

Eksempel:

cat sample.txt | grep lovgiver

Her har jeg brukt katt kommandoen for å vise noen linjer fra 'sample.txt'-filen. Bare de linjene som inneholder ordet "lovgiver" skal vises og ignorere resten av linjene.

Produksjon:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india står på tre pilarer av lovgivende, utøvende og rettsvesen. gaurav@ubuntu:~/workspace$

grep brukt uten rør ( | )nytte

grep kan til og med brukes direkte som en individuell kommando uten å bruke røret ( | ) nytte.

Syntaks:

grep [string_to_be_searched] [filnavn]

Eksempel:

grep India sample.txt

Produksjon:

India er et vakkert land med fredselskende mennesker. India bryr seg om menneskene som sin ressurs

Dermed har jeg brukt grep kommandoen direkte for å filtrere linjene som inneholder strengen 'India' fra tekstfilen 'sample.txt'.

Uavhengig av store og små bokstaver søk med grep kommando

Linux er veldig forsiktig med følsomheten for store og små bokstaver når vi avfyrer kommandoene på terminalen. Dette krever at brukeren er forsiktig med tilfellet av strengen som legges inn i kommandoen.

La oss se dette gjennom et eksempel.

grep fred sample.txt

I dette tilfellet vil vi ikke få en utgang siden det ikke finnes noe ord som "fred" i eksempelfilen. Vi har ordet 'fred' med stor 'P'. Ordet er det samme, men når vi bruker grep kommandoen uten noe alternativ, søker den etter den eksakte matchen i filen, og ser bort fra endringer i store og små bokstaver.

For å unngå denne tvetydigheten kan du ganske enkelt bruke -Jeg alternativ som bokstavelig talt forteller grep kommando "glem saken jeg har lagt strengen i, og søk bare etter alle samsvarende mønstre i filen."

Syntaks:

grep -i [streng] [filnavn]

Eksempel:

grep -i fred sample.txt

Produksjon:

INDIA ER ET VAKKERT LAND MED FREDELSKE FOLK. India er et vakkert land med fredselskende mennesker.

Alle samsvarende linjer vises uavhengig av tilfellet der den samsvarende strengen er.

Rekursivt søk ved hjelp av grep kommando

De -r alternativet vil søke etter alle filene i en katalog og alle dens underkataloger som samsvarer med strengmønsteret gitt av brukeren i kommandoen.

Syntaks:

grep -i -r [streng] [filbane]

Eksempel:

grep -i -r tomcat /home/gaurav/workspace

Strengen her er "tomcat" og den vil bli søkt i katalogens arbeidsområde. Alle underkatalogene og filene i "arbeidsområde"-katalogen vil også bli skannet for å matche strengmønsteret som er gitt.

Produksjon:

./context_log.policy:// catalina.policy - Sikkerhetspolicytillatelser for Tomcat 7 ./context_log.policy:// Merk: Hvis tomcat-juli.jar er i ${catalina.base} og ikke i ${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: tillatelse java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server"; ./context.xml: ./catalina.properties:# - Tomcat Bootstrap JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - Vanlige ikke-Tomcat JARs ./catalina.properties:org.apache.catalina.startup.TldConfig.jarsToSkip=tomcat7-websocket.jar ./catalina.properties:tomcat.util.buf.StringCache.byte.enabled=true ./catalina.properties:# tomcat.util.buf.StringCache.char.enabled=true ./catalina.properties:#tomcat.util.buf.StringCache.trainThreshold=500000 ./catalina.properties:#tomcat.util.buf.StringCache.cacheSize=5000 . /server.xml: pathname="conf/tomcat-users.xml" /> ./server.xml: 

MERK: Mens du bruker -r alternativet med grep kommandoen må vi oppgi banen til filen og ikke filnavnet

Søker kun hele ord med grep kommando

Mange ganger er tilfellet at du vil søke etter ett ord, men du vil ende opp med å fylle terminalen din med de samsvarende linjene som inneholder det samsvarende ordet, men ikke som et enkeltord. Du kan se linjene som inneholder noen ord hvis underdel er strengen du har skrevet inn.

Forvirret med dette? Ikke bekymre deg, det er mye lettere å forstå når du først har fått eksemplet.

Eksempel:

Her vil jeg søke etter et individuelt ord 'cart' og vise alle linjene som samsvarer med dette ordet i filen 'sample.txt'.

grep -i cart sample.txt

Produksjon:

Kartesiske koordinater betydningen av alle de kartesiske koordinatene. bruk av oksevogn er et vanlig syn i bygda for de agrariske gjøremålene Vognen ble borte da gutten lot den ligge løs.

I utgangen kan du observere at ordet 'kartesisk' også inneholder ordet 'vogn', og derfor vises linjene som inneholder ordet 'kartesisk' også selv om vi ikke vil at de skal vises.

Du kan bruke -w alternativet med grep kommando for å løse denne tvetydigheten.

Syntaks:

grep -i -w [streng] [filnavn]

Eksempel:

grep -i -w cart sample.txt

Produksjon:

bruk av oksevogn er et vanlig syn i bygda for de agrariske gjøremålene. Vognen ble borte da gutten lot den ligge løs. 

Nå, når du har brukt –w alternativ med grep du vil bare få opp linjene der ordet "vogn" brukes som helhet.

Invertert søk ved hjelp av grep kommando

grep kommandoen kan også brukes på en omvendt måte. Vi kan bruke grep kommandoen motsatt ved å skjule de samsvarende linjene og bare vise linjene der samsvaret ikke er funnet. Du kan gjøre dette ved å bruke -v alternativet med grep kommando.

Syntaks:

grep -i -v [streng] [filnavn]

Eksempel:

grep -i -v ressurseksempel.txt

Produksjon:

INDIA ER ET VAKKERT LAND MED FREDELSKE FOLK. India står på tre søyler av lovgivende, utøvende og rettsvesen. India er et vakkert land med fredselskende mennesker. kartesiske koordinater betydningen av alle de kartesiske koordinatene. bruk av oksevogn er et vanlig syn i bygda for de agrariske gjøremålene. Dette er slutten av eksempelfilen.

I utdataene vises alle andre linjer bortsett fra linjen som inneholder ordet 'ressurs'.

Teller forekomster av samsvarende streng

Utgangen til grep kommandoen er vanligvis veldig lang hvis dataene i filen er omfattende. Jo flere treff, jo lengre er utgangene til grep kommando. Linux gir deg et alternativ der du kan vise antall forekomster av kampen.

Syntaks:

grep -i -c [streng] [filnavn]

Eksempel:

grep -i -c india sample.txt

Produksjon:

gaurav@ubuntu:~/workspace$ grep -i -c india sample.txt 4 gaurav@ubuntu:~/workspace$

Her er utdata et tall som er antall forekomster av ordet «India» i filen sample.txt.

MERK: Jeg har brukt -Jeg alternativ i hvert eksempel for å bare være trygg med sakssensitivitetsproblemet. Hvis du er sikker på tilfellet til ordet du søker etter, kan du trygt utelate -Jeg alternativ.

Konklusjon

Vi har lært de grunnleggende bruken av grep kommando på Linux-systemene i denne opplæringen. Vi lærte også å vise forskjellig innhold som passer best til våre krav og ikke fylle terminalen med mange linjer. grep kommandoen vil sikkert være en tidsbesparende hvis den brukes til å skanne store datasett.