I denne artikkelen vil vi forklare bruken av GREP -verktøyet med forskjellige eksempler. Vi vil bruke Debian 10 for å forklare kommandoene og metodene som er nevnt i denne artikkelen.
Installere grep
Grep kommer installert i de fleste Linux -distribusjoner. I tilfelle det mangler i systemet ditt, kan du installere det ved hjelp av følgende metode i terminalen:
$ sudo apt-get install grep
Bruker grep
Her er den grunnleggende syntaksen til GREP -kommandoen. Det starter med GREP etterfulgt av noen alternativer og søkekriterier og slutter deretter med filnavnet.
$ grep [alternativer] mønster [fil…]
Søk etter filer
For å søke etter et filnavn i en katalog som inneholder en spesifikk streng i den, kan du bruke GREP på følgende måte:
$ ls -l | grep -i “String
For eksempel å søke etter et filnavn som inneholder en streng "test“Kommandoen ville være:
$ ls -l | grep -i test
Denne kommandoen viser alle filene som inneholder strengen "test”.
Søk etter en streng i en fil
For å søke etter en streng i en bestemt fil, kan du bruke følgende kommandosyntax:
$ grep “streng” filnavn
For eksempel å søke etter en streng "test”I en fil som heter testfile1, Vi har brukt følgende kommando:
$ grep “ansatt” testfile1
Ovennevnte utgang har returnert setningen fra testfile1 som inneholder strengen "ansatt”.
Søk etter en streng i flere filer
For å søke etter en streng i flere filer, kan du bruke følgende kommandosyntax:
$ grep “streng” filnavn1 filnavn2
For å søke etter en streng “ansatt” i våre to filer TestFile1 og TestFile2, har vi for eksempel brukt følgende kommando:
$ grep “ansatt” testfile1 testfile2
Kommandoen ovenfor vil liste opp alle linjene som inneholder strengen “Ansatt” fra begge filene TestFile1 og TestFile2.
Du kan også bruke et jokertegn hvis alle filnavnene begynner med samme tekst.
$ grep “streng” filnavn*
Som om vi tar eksemplet ovenfor der våre filnavn var TestFile1 og TestFile2 , Kommandoen ville være:
$ grep “ansatt” testfile*
Søk etter en streng i en fil ved å ignorere saken om strengen
Oftest har du møtt at når du søker etter noe ved hjelp av GREP, men ikke mottar en utdata. Dette skjer på grunn av et tilfeller av et tilfelle mens du søker etter en streng. Som i vårt eksempel, hvis vi feilaktig bruker “Ansatt" i stedet for "ansatt”, Den vil returnere null ettersom filen vår inneholder strengen”ansatt”I små bokstaver.
Du kan fortelle grep om å ignorere saken om søkestreng ved å bruke -i flagg etter grep som følger:
$ grep -i “String” filnavn
Ved å bruke -i -flagget vil kommandoen utføre saken ufølsom søk og vil returnere alle linjene som inneholder strengen "ansatt”I det uten å ta hensyn til brevene er i store bokstaver eller små bokstaver.
Søk ved hjelp av det vanlige uttrykket
Hvis det brukes riktig, er det vanlige uttrykket en veldig effektiv funksjon i grep. Med GREP -kommandoen kan du definere et vanlig uttrykk med et start og et sluttnøkkelord. Ved å gjøre det, trenger du ikke å skrive hele linjen med GREP -kommandoen. Følgende syntaks kan brukes til dette formålet.
$ grep “Start nøkkelord.*EndingKeyWord ”filnavn
For å søke etter en linje i en fil som heter TestFile1 som starter med strengen “This” og ender med strengen “Data”, har vi brukt følgende kommando:
$ grep “Dette.*data ”testfile1
Den vil trykke hele linjen fra testfile1 Inneholder uttrykket (starter nøkkelord “dette” og slutt nøkkelordet “data”).
Skriv ut et bestemt antall linjer etter/før søkestrengen
Du kan også vise det spesifikke antallet linjer i en fil før/etter en strengkamp sammen med selve den matchede strengen. Følgende syntaks kan brukes til dette formålet:
$ grep -a“String” filnavn
Den vil vise n antall linjer etter at strengen er matchet i den spesifiserte filen inkludert den matchede strengen.
For eksempel er dette vår prøvefil som heter testfile2.
Følgende kommando vil sende ut den matchede linjen som inneholder strengen “ansatt”, Sammen med de to linjene etter den.
$ grep -a 2 -i “ansatt” testfile2
Tilsvarende, for å vise n antall linjer før den matchede strengen i en spesifikk fil, bruk følgende syntaks:
$ grep -b“String” filnavn
For å vise N antall linjer rundt strengen i en spesifikk fil, bruk følgende syntaks:
$ grep -c“String” filnavn
Fremheve søket
Grep som standard utskrift matchede linjer, men viser ikke hvilken del av linjen som er matchet. Hvis du bruker alternativet med grep, vil det vise hvor maskineringsstrengene vises i filen din. Grep som standard bruker den røde fargen for å fremheve.
Følgende syntaks kan brukes til dette formålet:
$ grep “streng” filnavn -farger
Teller antall kamper
Hvis du vil telle hvor mange ganger et bestemt ord vises i en bestemt fil, kan du bruke GREP med -c -alternativet. Den returnerer bare antall kamper i stedet for selve kampene. Følgende syntaks kan brukes til dette formålet:
$ grep -c “String” filnavn
Dette er vår eksempler på filen ser ut som:
Følgende er et eksempel på en kommando som returnerte antall ganger ordet fil dukket opp i en fil som heter testfile3.
Omvendt søk
Noen ganger vil du utføre et omvendt søk som viser alle linjer bortsett fra det som samsvarer med inngangen. For å gjøre det, bare bruk -v -flagget etterfulgt av GREP:
$ grep -v “String” filnavn
For eksempel å vise alle linjene i en fil testfile3 Det inneholder ikke ordet "konto" i dem, vi har brukt følgende kommando:
$ grep -v “konto” testfile3
Bruker grep med andre kommandoer
GREP kan også brukes til å filtrere ut det nødvendige resultatet fra forskjellige kommandoutgang. For eksempel fra "Apt -installert liste ” Kommandoutgang, du vil bare finne pakkene som ble installert automatisk, du kan filtrere ut resultatet ved å bruke GREP som følger:
$ apt -installert liste | grep automatisk
Tilsvarende gir LSCPU detaljert informasjon om CPU. Hvis du bare er interessert i informasjonen om CPU -arkitekturen, kan du filtrere den ut ved hjelp av følgende kommando:
$ LSCPU | grep arkitektur
I denne artikkelen har vi beskrevet noen eksempler som vil hjelpe deg med å forstå GREP -kommandoene og bruken av den under forskjellige forhold. Å ha et sterkt grep om GREP -kommandoen kan spare mye tid hvis du trenger å se på store konfigurasjons- eller loggfiler og skumme nyttig informasjon gjennom dem.