Eksempel 1: Søker etter en spesifikk streng i en fil
Dette er den vanligste bruken av EGREP -kommandoen. Det du gjør er at du spesifiserer en streng du vil søke etter, og filnavnet du vil slå opp den strengen i. Resultatet viser deretter hele linjen som inneholder den søkte strengen.
Syntaks:
$ egrep “search_string” filnavn
Eksempel:
$ Egrep Debian Samplefile.tekst
I dette eksemplet søkte jeg etter ordet "Debian" i den spesifiserte tekstfilen. Du kan se hvordan resultatene viser hele linjen som inneholder ordet “Debian”:
Eksempel 2: Søker etter en spesifikk streng i flere filer
Med EGREP -kommandoen kan du søke etter en streng blant flere filer som er bosatt i samme katalog. Du må bare være litt mer spesifikk når du gir et "mønster" for de søkte filene. Dette vil bli tydeligere med eksemplet vi vil presentere.
Syntaks:
$ egrep "search_string" filnavn_pattern
Eksempel:
Her vil vi søke etter ordet “Debian” i alle .TXT -filer ved å spesifisere filnavnmønsteret som følger:
$ EGREP “Debian” *.tekst
Kommandoen har skrevet ut alle linjene, sammen med filnavnene som inneholder ordet "Debian" fra alle .TXT -filer i den gjeldende katalogen.
Eksempel 3: Rekursivt søker i strengen i hele katalogen
Når du vil søke etter en streng i alle filene fra en katalog og dens underkataloger, kan du gjøre det ved å bruke -R -flagget med EGREP -kommandoen.
Syntaks:
$ egrep -r "search_string" *
Eksempel:
I dette eksemplet søker jeg etter ordet "Eksempel" i filene i hele Current (Downloads) Directory.
$ egrep -r "prøve" *
Resultatene inneholder alle linjene, sammen med filnavnene, som inneholder ordet "prøve" fra alle filene i nedlastingskatalogen, og underkatalogene.
Eksempel 4: Utfører et case-ufølsom søk
Med -i -flagget kan du bruke EGREP -kommandoen til å skrive ut resultatene basert på en søkestreng uten å måtte bekymre deg for saken.
Syntaks:
$ egrep -i "search_string" filnavn
Eksempel:
Her søker jeg etter ordet "Debian", og jeg vil at resultatene skal vise alle linjer fra filen som inneholder ordet "Debian" eller "Debian, uavhengig av saken.
$ egrep -i "search_string" filnavn
Du kan se hvordan -i -flagget hjalp meg med å hente alle linjene som inneholder søkestrengen gjennom et tilfelle "ufølsomt" søk.
Eksempel 5: Søker etter en streng som et fullt ord og ikke som en understreng
Når du normalt søker etter en streng gjennom EGREP, skriver den ut alle ordene som inneholder strengen som en understreng. For eksempel vil du se opp for strengen "ON" på "ON -streng. Hvis du vil at resultatene bare skal vise ordet "på" som et fullt ord og ikke som en understreng, kan du bruke -W -flagget med EGREP.
Syntaks:
$ egrep -w “search_string” filnavn
Eksempel:
Her søker jeg etter strengen “ON” i en eksempelfil:
$ Egrep -i “on” Samplefile.tekst
Du kan se i output ovenfor, at det inneholder ordet “bare” også. Dette er imidlertid ikke det jeg vil, da jeg utelukkende leter etter ordet "på". Så dette er kommandoen jeg vil bruke i stedet:
$ egrep -iw “on” Samplefile.tekst
Nå inkluderer søkeresultatene mine bare linjene som inneholder ordet "på" som et helt ord.
Eksempel 6: Skriv ut bare filnavnene som inneholder strengen
Noen ganger ønsker vi bare å hente filnavnene som inneholder en spesifikk streng, i stedet for å skrive ut linjene som inneholder den. Dette kan gjøres ved hjelp av -l (små L) -flagget med EGREP -kommandoen.
Syntaks:
$ egrep -l "search_string" filename_pattern
Eksempel:
Her søker jeg etter strengen "prøve" i alle .TXT -filer i gjeldende katalog:
$ egrep -l prøve *.tekst
Søkeresultatene skriver bare ut navnet på filene som inneholder den spesifiserte strengen.
Eksempel 7: Skriv ut bare søkestrengen fra en fil
I stedet for å skrive ut hele linjen som inneholder søkestrengen, kan du bruke EGREP -kommandoen til å skrive ut selve strengen. Strengen vil bli skrevet ut antall ganger den vises i den spesifiserte filen.
Syntaks:
$ egrep -o "search_string" filnavn
Eksempel:
I dette eksemplet ser jeg opp for ordet "dette" i filen min.
$ Egrep -o denne eksempletfilen_.tekst
Merk: Denne bruken av kommandoen er praktisk når du søker etter en streng basert på et vanlig uttrykksmønster. Vi vil forklare regelmessige uttrykk i detalj i et av de kommende eksemplene.
Eksempel 8: Viser n antall linjer før, etter eller rundt søkestrengen
Noen ganger er det veldig viktig å kjenne konteksten i en fil der en spesifikk streng brukes. EGREP kommer godt med i den forstand at den kan brukes til å vise linjen som inneholder søkestrengen, og også et bestemt antall linjer før, etter og omgir den.
Dette er eksemplet tekstfil som jeg vil bruke for å forklare de kommende eksemplene:
N Antall linjer etter søkestrengen:
Å bruke A -flagget på følgende måte vil vise linjen som inneholder søkestrengen og N -antall linjer etter den:
$ egrep -a"search_string" filnavn
Eksempel:
$ egrep -a 2 "prøve" prøvefil.tekst
N Antall linjer før søkestrengen:
Ved å bruke B -flagget på følgende måte vil du vise linjen som inneholder søkestrengen og n antall linjer før den:
$ egrep -b"search_string" filnavn
Eksempel:
$ egrep -b 2 "prøve" prøvefil.tekst
N Antall linjer før søkestrengen:
Ved å bruke C -flagget på følgende måte vil du vise linjen som inneholder søkestrengen, og N antall linjer før og etter den:
$ Egrep -C"search_string" filnavn
Eksempel:
$ egrep -c 2 "prøve" prøvefil.tekst
Eksempel 9: Matchende vanlig uttrykk i filer
EGREP -kommandoen blir kraftigere når du søker etter vanlige uttrykk i stedet for solide søkestrenger i en fil.
Syntaks:
$ egrep "regularexpressions" filnavn
La oss forklare hvordan du kan bruke vanlige uttrykk i EGREP -søket ditt:
Repetisjonsoperatør | Bruk |
? | Den foregående varen før ? er valgfritt og er matchet maksimalt en gang |
* | Den foregående varen før * vil bli matchet null eller flere ganger |
+ | Den foregående varen før + vil bli matchet en eller flere ganger |
n | Den foregående varen er nøyaktig matchet n antall ganger. |
n, | Den foregående varen er matchet n eller flere ganger |
, m | Den foregående varen er matchet maksimalt m ganger |
n, m | Den foregående varen er matchet minst n ganger, men ikke mer enn M ganger |
Eksempel:
I det følgende eksemplet samsvarer linjene som inneholder følgende uttrykk:
Starter med “Gnome” og slutter på “Programmer”
Eksempel 10: Utheving av søkestrengen
Når du angir miljøvariabelen Grep_options som nedenfor, får du utdataene med søkestrengen/mønsteret uthevet i resultatene:
$ sudo eksport grep_options = '-color = auto' grep_color = '100; 8'
Du kan deretter søke etter strengen på hvilken som helst måte vi har beskrevet i eksemplene på denne artikkelen.
Eksempel 11: Utfører invertersøk i en fil
Med Inververt søk mener vi at EGREP -kommandoen skriver ut alt i filen, bortsett fra linjene som inneholder søkestrengen. Vi bruker følgende prøvefil for å forklare inverter søk gjennom EGREP. Vi har skrevet ut innholdet i filen ved hjelp av CAT -kommandoen:
Syntaks:
$ egrep -v "search_string" filnavn
Eksempel:
Fra prøvefilen vi nevnte, ønsker vi å utelate linjen som inneholder ordet “to” i utgangen, derfor vil vi bruke følgende kommando:
$ egrep -v "to" samplefile_.tekst
Du kan se hvordan utdataene inneholder alt fra prøvefilen bortsett fra den andre linjen som inneholdt søkestrengen “Two”.
Eksempel 12: Utfører invertersøk basert på flere kriterier/søkemønster
Med -v -flagget kan du også lage EGREP -kommandoen for å utføre et omvendt søk basert på mer enn en søkestreng/mønster.
Vi vil bruke den samme prøvefilen som vi nevnte i eksempel 11 for å forklare dette scenariet.
Syntaks:
$ egrep -v -e "search_string"/"mønster" -e "search_string"/"mønster"
… filnavn
Eksempel:
Fra prøvefilen vi nevnte, ønsker vi å utelate linjen (e) som inneholder ordene “en” og “to” i utgangen, derfor vil vi bruke følgende kommando:
$ egrep -v -e “One” -e ”Two" Samplefile_.tekst
Vi har gitt to ord å utelate ved hjelp av -e -flagget, derfor vil utgangen vises som følger:
Eksempel 13: Skrive ut antall linjer som samsvarer med søkestrengen
I stedet for å skrive ut den søkte strengen fra filen eller linjene som inneholder den, kan du bruke EGREP -kommandoen til å telle og skrive ut antall linjer som er matchet mot strengen. Dette antallet kan hentes ved hjelp av -c -flagget med EGREP -kommandoen.
Syntaks:
$ egrep -c "search_string" filnavn
Eksempel:
I dette eksemplet vil vi bruke -C -flagget for å telle antall linjer som inneholder ordet “dette” i vår prøvefil:
$ egrep -c "dette" filnavn
Du kan også bruke Invert Search -funksjonen her for å telle og skrive ut antall linjer som ikke inneholder søkestrengen:
$ grep -v -c "search_string" filnavn
Eksempel 14: Viser linjenummeret der strengen er matchet
Med -N -flagget kan du lage EGREP -kommandoen for å skrive ut den matchede linjen sammen med linjenummeret som inneholder søkestrengen.
Syntaks:
$ grep -n "search_string" filnavn
Eksempel:
$ grep -n "dette” Samplefile_.tekst
Du kan se hvordan linjenumrene vises mot søkeresultatene.
Eksempel 15: Viser posisjonen i filen der søkestrengen samsvarer med
Hvis du vil vite posisjonen i filen der søkestrengen eksisterer, kan du bruke -B -flagget med EGREP -kommandoen.
$ grep -o -b "search_string" filnavn
Eksempel:
$ grep -o -b "this” samplefile_.tekst
Søkeresultatene skriver ut byteforskyvningen av filen der søkeordet eksisterer.Dette var en detaljert bruk av EGREP -kommandoen. Ved å bruke en kombinasjon av flaggene som er forklart i denne artikkelen, kan du utføre mer meningsfulle og komplekse søk på filene dine.