Hur man använder Grep Command i Linux

Förstå grep-kommandot med praktiska exempel för att enkelt filtrera och visa filinnehållet

GREP står för "Global Regular Expression Print". Det är ett användbart kommandoradsverktyg som tillhandahålls av Linux, för att söka efter textraden som matchar mönstret som användaren tillhandahåller.

grep tar input från användaren i form av strängar eller ord som användaren vill söka i en viss fil. Kommandot kontrollerar sedan filen som specificerats av användaren för detta mönster och returnerar sedan raderna som matchar mönstret som tillhandahålls.

Det gör ett utmärkt jobb genom att filtrera innehållet i en fil, vilket gör vår uppgift lättare att söka efter visst innehåll på enstaka eller flera filer samtidigt.

Låt oss i den här artikeln granska funktionen hos grep kommando med några praktiska exempel i detalj.

Alternativ tillgängliga med grep kommando

Det här är några av de grundläggande alternativen du kommer att använda ofta med grep kommando.

AlternativBeskrivning
-jagFör en skiftlägesokänslig sökning
-rFör att rekursivt söka efter alla filer i den angivna katalogen och dess underkataloger
-cFör att visa det totala antalet gånger en sträng visas
-vFör att visa de icke-matchande raderna
-wFiltrera för just det ordet som används separat

Använda grep kommando

grep kommandot används vanligtvis med pipen (|) verktyg. Det kan implementeras med skalröret när du vill använda det med några andra Linux-kommandon. Fastän, grep kan även användas individuellt utan röret (|) verktyg.

Låt oss se några av de grundläggande syntaxerna för grep kommando med och utan rörverktyget.

Låt mig först visa dig exempeltextfilen som jag kommer att använda för att illustrera grep kommando.

INDIEN ÄR ETT VACKERT LAND MED FREDSLÄKANDE FOLK. Indien står på tre pelare: lagstiftande, verkställande och rättsliga makt. Indien är ett vackert land av fredsälskande människor. Indien bryr sig om människorna eftersom dess resurs kartesiska koordinater betydelse för alla kartesiska koordinater. Följande är två tomma rader. användning av en tjurvagn är en vanlig syn i byn för jordbrukssysslorna. Detta är slutet på exempelfilen.

grep används med rör ( | )verktyg

grep kommandot kan implementeras tillsammans med andra Linux-kommandon med hjälp av skalrören. Som att använda katt kommandot för att visa innehållet i filen men samtidigt förvandla utdata med hjälp av grep kommandot för att endast visa det innehåll du vill se. Detta blir tydligare när vi går igenom exemplet.

Syntax:

[kommando] | grep [sträng]

Exempel:

cat sample.txt | grep lagstiftande församling

Här har jag använt katt kommandot för att visa några rader från filen 'sample.txt'. Endast de rader som innehåller ordet "lagstiftande församling" ska visas och ignorera resten av raderna.

Produktion:

gaurav@ubuntu:~/workspace$ cat sample.txt | grep legislature india står på tre pelare av lagstiftande makt, verkställande och rättsväsende. gaurav@ubuntu:~/workspace$

grep används utan rör ( | )verktyg

grep kan till och med användas direkt som ett individuellt kommando utan att använda röret ( | ) verktyg.

Syntax:

grep [string_to_be_searched] [filnamn]

Exempel:

grep Indien sample.txt

Produktion:

Indien är ett vackert land av fredsälskande människor. Indien bryr sig om människorna som sin resurs

Således har jag använt grep kommandot direkt för att filtrera raderna som innehåller strängen 'India' från textfilen 'sample.txt'.

Skiftlägesokänslig sökning med hjälp av grep kommando

Linux är mycket försiktig med skiftlägeskänsligheten när vi avfyrar kommandona på terminalen. Detta kräver att användaren är försiktig med fallet med strängen som lagts in i kommandot.

Låt oss se detta genom ett exempel.

grep fred sample.txt

I det här fallet kommer vi inte att få en utdata eftersom det inte finns något ord som "fred" i exempelfilen. Vi har ordet 'fred' med stort 'P'. Ordet är detsamma men när vi använder grep utan något alternativ, söker den efter den exakta matchningen i filen, utan hänsyn till eventuella ändringar i skiftläge.

För att undvika denna tvetydighet kan du helt enkelt använda -jag alternativ som bokstavligen talar om grep kommando "Glöm fallet jag har lagt strängen i, och sök bara efter alla matchande mönster i filen."

Syntax:

grep -i [sträng] [filnamn]

Exempel:

grep -i peace sample.txt

Produktion:

INDIEN ÄR ETT VACKERT LAND MED FREDSLÄKANDE FOLK. Indien är ett vackert land av fredsälskande människor.

Alla matchande rader visas oavsett i vilket fall den matchande strängen är.

Rekursiv sökning med hjälp av grep kommando

De -r alternativet kommer att söka efter alla filer i en katalog och alla dess underkataloger som matchar strängmönstret som tillhandahålls av användaren i kommandot.

Syntax:

grep -i -r [sträng] [filsökväg]

Exempel:

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

Strängen här är "tomcat" och den kommer att sökas i katalogens arbetsyta. Alla underkataloger och filer i katalogen "arbetsyta" kommer också att skannas för att matcha det angivna strängmönstret.

Produktion:

./context_log.policy:// catalina.policy - Säkerhetspolicybehörigheter för Tomcat 7 ./context_log.policy:// Obs: Om tomcat-juli.jar är i ${catalina.base} och inte i ${catalina.home }, ./context_log.policy:// grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..} ./context_log.policy:grant codeBase "fil:${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 JARs ./catalina.properties:# - Tomcat API JARs ./catalina.properties:# - Tomcat JARs ./catalina.properties:# - Vanliga icke-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: 

NOTERA: När du använder -r alternativet med grep kommandot måste vi ange sökvägen till filen och inte filnamnet

Söker bara hela ord med grep kommando

Många gånger är fallet att du kommer att söka efter ett ord men du kommer att fylla din terminal med de matchande raderna som innehåller ditt matchande ord men inte som ett enskilt ord. Du kan se raderna som innehåller några ord vars underdel är strängen som du har skrivit in.

Förvirrad med detta? Oroa dig inte, det är mycket lättare att förstå när du väl får exemplet.

Exempel:

Här vill jag söka efter ett enskilt ord "vagn" och visa alla rader som matchar detta ord i filen "sample.txt".

grep -i cart sample.txt

Produktion:

Kartesiska koordinater betydelsen av alla kartesiska koordinater. användning av tjurvagn är en vanlig syn i byn för jordbrukssysslorna. Vagnen försvann när pojken lämnade den lös.

I utgången kan du observera att ordet 'cartesian' också innehåller ordet 'cart' och följaktligen visas raderna som innehåller ordet 'cartesian' även om vi inte vill att de ska visas.

Du kan använda -w alternativet med grep kommando för att lösa denna oklarhet.

Syntax:

grep -i -w [sträng] [filnamn]

Exempel:

grep -i -w cart sample.txt

Produktion:

användning av en tjurvagn är en vanlig syn i byn för jordbrukssysslorna. Vagnen försvann när pojken lämnade den lös. 

Nu, när du har använt –w alternativ med grep du får bara de rader där ordet "vagn" används som helhet.

Inverterad sökning med hjälp av grep kommando

grep kommandot kan också användas på ett omvänt sätt. Vi kan använda grep kommandot motsatt genom att dölja de matchande raderna och endast visa de rader där matchningen inte hittas. Du kan göra detta med hjälp av -v alternativet med grep kommando.

Syntax:

grep -i -v [sträng] [filnamn]

Exempel:

grep -i -v resursexempel.txt

Produktion:

INDIEN ÄR ETT VACKERT LAND MED FREDSLÄKANDE FOLK. Indien står på tre pelare: lagstiftande, verkställande och rättsliga makt. Indien är ett vackert land av fredsälskande människor. kartesiska koordinater betydelsen av alla kartesiska koordinater. användning av en tjurvagn är en vanlig syn i byn för jordbrukssysslorna. Detta är slutet på exempelfilen.

I utgången visas alla andra rader förutom raden som innehåller ordet "resurs".

Räknar förekomster av matchande sträng

Utgången av grep kommandot är vanligtvis mycket långt om data i filen är omfattande. Ju fler matchningar, desto längre är utgångarna på grep kommando. Linux ger dig ett alternativ där du kan visa antalet förekomster av matchen.

Syntax:

grep -i -c [sträng] [filnamn]

Exempel:

grep -i -c india sample.txt

Produktion:

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

Här är utdata ett tal som är antalet förekomster av ordet "Indien" i filen sample.txt.

NOTERA: Jag har använt -jag alternativet i varje exempel för att bara vara säker med skiftlägeskänslighet. Om du är säker på fallet med ordet du söker efter kan du säkert utelämna -jag alternativ.

Slutsats

Vi har lärt oss de grundläggande användningarna av grep kommandot på Linux-systemen i denna handledning. Vi lärde oss också att visa olika innehåll som bäst passar våra krav och att inte tränga terminalen med massor av rader. grep kommandot kommer säkert att spara tid om det används för att skanna stora datamängder.