grep

Linux egrep Kommando med eksempler

Linux egrep Kommando med eksempler
Egrep-kommandoen tilhører familien af ​​grep-kommandoen, der bruges til mønstersøgning i Linux. Hvis du har brugt kommandoen grep, fungerer egrep det samme som grep -E (grep Extended regex ') gør. Egrep scanner en bestemt fil, linje til linje og udskriver de linjer, der indeholder søgestrengen / regulært udtryk. I denne artikel vil vi forklare 15 nyttige eksempler på egrep-kommandoer, der hjælper nybegyndere og endda eksperter til at udføre meningsfulde søgninger i Linux Vi har udført disse eksempler på et Debian 10 Buster-system, men de kan let replikeres på de fleste Linux-distroer.

Eksempel 1: Søgning efter en bestemt streng i en fil

Dette er den mest almindelige anvendelse af egrep-kommandoen. Hvad du gør er, at du angiver en streng, som du vil søge efter, og det filnavn, som du vil slå den streng op i. Resultatet viser derefter hele linjen, der indeholder den søgte streng.

Syntaks:

$ egrep “search_string” filnavn

Eksempel:

$ egrep debian prøvefil.txt

I dette eksempel søgte jeg efter ordet “debian” i den angivne tekstfil. Du kan se, hvordan resultaterne viser hele linjen, der indeholder ordet "debian":

Eksempel 2: Søgning efter en bestemt streng i flere filer

Med egrep-kommandoen kan du søge efter en streng blandt flere filer, der findes i samme bibliotek. Du skal bare være lidt mere specifik i at give et "mønster" til de søgte filer. Dette vil blive mere tydeligt med det eksempel, vi vil præsentere.

Syntaks:

$ egrep "søgestreng" filnavn_model

Eksempel:

Her vil vi søge efter ordet "debian" i alle .txt-filer ved at angive filnavnet som følger:

$ egrep “debian” *.txt

Kommandoen har udskrevet alle linjer sammen med filnavne, der indeholder ordet "debian" fra alle .txt-filer i det aktuelle bibliotek.

Eksempel 3: Rekursiv søgning i strengen i hele biblioteket

Når du vil søge efter en streng i alle filerne fra et bibliotek og dets underkataloger, kan du gøre det ved at bruge flaget -r med kommandoen egrep.

Syntaks:

$ egrep -r "søgestreng" *

Eksempel:

I dette eksempel søger jeg efter ordet "prøve" i filerne i hele den aktuelle (Downloads) mappe.

$ egrep -r "prøve" *

Resultaterne indeholder alle linjerne sammen med filnavne, der indeholder ordet "prøve" fra alle filerne i Downloads-biblioteket og dets underkataloger.

Eksempel 4: Udfør en sagfølsom søgning

Med -i-flag kan du bruge kommandoen egrep til at udskrive resultaterne baseret på en søgestreng uden at skulle bekymre sig om sagen.

Syntaks:

$ egrep -i "search_string" filnavn

Eksempel:

Her søger jeg efter ordet "debian", og jeg vil have, at resultaterne skal vise alle linjer fra filen, der indeholder ordet "debian" eller "Debian, uanset om det er tilfældet.

$ egrep -i "search_string" filnavn

Du kan se, hvordan -i-flag hjalp mig med at hente alle de linjer, der indeholder søgestrengen gennem en sag "ufølsom" søgning.

Eksempel 5: Søgning efter en streng som et fuldt ord og ikke som en understreng

Når du normalt søger efter en streng gennem egrep, udskriver den alle de ord, der indeholder strengen som en understreng. Hvis du f.eks. Ser op til strengen "on", udskrives alle de ord, der indeholder strengen "on" som "on", "only", "monitor", "clone" osv. Hvis du kun ønsker, at resultaterne kun viser ordet "til" som et fuldt ord og ikke som en understreng, kan du bruge -w-flag med egrep.

Syntaks:

$ egrep -w "search_string" filnavn

Eksempel:

Her søger jeg efter strengen "on" i en prøvefil:

$ egrep -i "på" prøvefil.txt

Du kan se i ovenstående output, at den også indeholder ordet “kun”. Dette er dog ikke det, jeg ønsker, da jeg udelukkende leder efter ordet "til". Så dette er den kommando, jeg vil bruge i stedet:

$ egrep -iw "på" samplefile.txt

Nu inkluderer mine søgeresultater kun de linjer, der indeholder ordet "til" som et helt ord.

Eksempel 6: Udskriv kun filnavne, der indeholder strengen

Nogle gange vil vi kun hente filnavne, der indeholder en bestemt streng, i stedet for at udskrive de linjer, der indeholder den. Dette kan gøres ved hjælp af -l (små bogstaver L) flag med kommandoen egrep.

Syntaks:

$ egrep -l "search_string" filnavn_pattern

Eksempel:

Her søger jeg efter strengen "prøve" i alle .txt-filer i det aktuelle bibliotek:

$ egrep -l prøve *.txt

Søgeresultaterne udskriver kun navnet på de filer, der indeholder den angivne streng.

Eksempel 7: Udskriv kun søgestrengen fra en fil

I stedet for at udskrive hele linjen, der indeholder søgestrengen, kan du bruge kommandoen egrep til at udskrive selve strengen. Strengen udskrives det antal gange, den vises i den angivne fil.

Syntaks:

$ egrep -o "search_string" filnavn

Eksempel:

I dette eksempel leder jeg efter ordet "Dette" i min fil.

$ egrep -o Denne eksempelfil_.txt

Bemærk: Denne brug af kommandoen er praktisk, når du søger efter en streng baseret på et regulært udtryksmønster. Vi vil forklare regelmæssige udtryk i detaljer i et af de kommende eksempler.

Eksempel 8: Vis n antal linjer før, efter eller omkring søgestrengen

Nogle gange er det meget vigtigt at kende konteksten i en fil, hvor en bestemt streng bruges. Egrep er praktisk i den forstand, at det kan bruges til at vise linjen, der indeholder søgestrengen, og også et bestemt antal linjer før, efter og omkring den.

Dette er eksemplet på tekstfilen, som jeg vil bruge til at forklare de kommende eksempler:

N antal linjer Efter søgestrengen:

Brug af A-flag på følgende måde viser linjen, der indeholder søgestrengen og N antal linjer efter den:

$ egrep -A "search_string" filnavn

Eksempel:

$ egrep -A 2 "prøve" prøvefil.txt

N antal linjer Før søgestrengen:

Brug af B-flag på følgende måde viser linjen, der indeholder søgestrengen og N antal linjer foran den:

$ egrep -B "search_string" filnavn

Eksempel:

$ egrep -B 2 "prøve" prøvefil.txt

N antal linjer Før søgestrengen:

Brug af C-flag på følgende måde viser linjen, der indeholder søgestrengen og N antal linjer før og efter den:

$ egrep -C "search_string" filnavn

Eksempel:

$ egrep -C 2 "prøve" prøvefil.txt

Eksempel 9: Matching af regulært udtryk i filer

Kommandoen egrep bliver mere kraftfuld, når du søger efter regulære udtryk i stedet for solide søgestrenge i en fil.

Syntaks:

$ egrep "RegularExpressions" filnavn

Lad os forklare, hvordan du kan bruge Regular Expressions i din egrep-søgning:

Gentagelsesoperatør Brug
? Den foregående vare før ? er valgfri og matches maksimalt én gang

* Det foregående element før * matches nul eller flere gange
+ Det foregående element før + vil blive matchet en eller flere gange
n Den foregående vare matches nøjagtigt n antal gange.
n, Det foregående element matches n eller flere gange
, m Det foregående element matches maksimalt m gange
n, m Det foregående element matches mindst n gange, men ikke mere end m gange

Eksempel:

I det følgende eksempel matches linjerne, der indeholder følgende udtryk:

startende med "Gnome" og slutter med "programmer"

Eksempel 10: Fremhæv søgestrengen

Når du indstiller miljøvariablen GREP_OPTIONS som nedenfor, får du din output med søgestrengen / mønsteret fremhævet i resultaterne:

$ sudo eksport GREP_OPTIONS = '- color = auto' GREP_COLOR = '100; 8'

Du kan derefter søge efter strengen på enhver måde, som vi har beskrevet i eksemplerne i denne artikel.

Eksempel 11: Udfør invertsøgning i en fil

Ved invertsøgning mener vi, at egrep-kommandoen udskriver alt i filen undtagen de linjer, der indeholder søgestrengen. Vi bruger følgende eksempelfil til at forklare inverteret søgning gennem egrep. Vi har udskrevet indholdet af filen ved hjælp af kommandoen cat:

Syntaks:

$ egrep -v "search_string" filnavn

Eksempel:

Fra den eksempelfil, vi nævnte, vil vi udelade linjen, der indeholder ordet "to" i output, derfor vil vi bruge følgende kommando:

$ egrep -v "to" prøvefil_.txt

Du kan se, hvordan output indeholder alt fra prøvefilen undtagen den anden linje, der indeholdt søgestrengen "to".

Eksempel 12: Udfør invertsøgning baseret på flere kriterier / søgemønster

Med -v-flag kan du også lave kommandoen egrep til at udføre en inverteret søgning baseret på mere end en søgestreng / mønster.

Vi bruger den samme prøvefil som vi nævnte i eksempel 11 til at forklare dette scenarie.

Syntaks:

$ egrep -v -e "søgestreng" / "mønster" -e "søgestreng" / "mønster"
… filnavn

Eksempel:

Fra den eksempelfil, vi nævnte, vil vi udelade de linjer, der indeholder ordene "en" og "to" i output, derfor vil vi bruge følgende kommando:

$ egrep -v -e “en” -e “to” prøvefil_.txt

Vi har leveret to ord til at udelade ved hjælp af -e-flag, derfor vises output som følger:

Eksempel 13: Udskrivning af antallet af linjer, der matcher søgestrengen

I stedet for at udskrive den søgte streng fra filen eller linjerne, der indeholder den, kan du bruge kommandoen egrep til at tælle og udskrive antallet af linjer, der matches med strengen. Denne optælling kan hentes ved hjælp af -c flag med kommandoen egrep.

Syntaks:

$ egrep -c "search_string" filnavn

Eksempel:

I dette eksempel bruger vi -c-flag til at tælle antallet af linjer, der indeholder ordet "Dette" i vores prøvefil:

$ egrep -c "Dette" filnavn

Du kan også bruge inverter-søgefunktionen her til at tælle og udskrive antallet af linjer, der ikke indeholder søgestrengen: 

$ grep -v -c "search_string" filnavn

Eksempel 14: Visning af linjenummer, hvor strengen matches

Med -n-flag kan du lave kommandoen egrep til at udskrive den matchede linje sammen med linjenummeret, der indeholder søgestrengen.

Syntaks:

$ grep -n "search_string" filnavn

Eksempel:

$ grep -n "Denne" prøvefil_.txt

Du kan se, hvordan linjenumrene vises i forhold til søgeresultaterne.

Eksempel 15: Visning af positionen i filen, hvor søgestrengen matcher

Hvis du vil vide placeringen i filen, hvor søgestrengen findes, kan du bruge -b flag med kommandoen egrep.

$ grep -o -b "search_string" filnavn

Eksempel:

$ grep -o -b "Denne" prøvefil_.txt

Søgeresultaterne udskriver byteforskydningen af ​​den fil, hvor søgeordet findes.Dette var en detaljeret brug af egrep-kommandoen. Ved at bruge en kombination af de flag, der er forklaret i denne artikel, kan du udføre mere meningsfulde og komplekse søgninger på dine filer.

Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...
Top Oculus App Lab-spil
Hvis du er Oculus-headset-ejer, skal du være opmærksom på sideloading. Sideladning er processen med at installere ikke-butiksindhold på dit headset. S...