I denne artikkelen vil vi forklare bruken av grep -verktøyet med forskjellige eksempler. Vi vil bruke Debian 10 til å forklare kommandoene og metodene som er nevnt i denne artikkelen.
Installerer Grep
Grep kommer installert i de fleste Linux -distribusjonene. Men hvis det mangler fra systemet ditt, kan du installere det ved å bruke følgende metode i Terminal:
$sudo apt-get install grep
Bruker Grep
Her er den grunnleggende syntaksen for 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 bestemt streng i den, kan du bruke grep på følgende måte:
$ls -de | grep -Jegstreng
For eksempel å søke etter et filnavn som inneholder en streng test , vil kommandoen være:
$ls-de| grep-JegtestDenne 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 kommandosyntaks:
$grepstrengfilnavnFor eksempel for å søke etter en streng test i en fil med navnet testfil 1 , vi har brukt følgende kommando :
$grepansattes testfil 1Utdataene ovenfor har returnert setningen fra testfil 1 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 kommandosyntaks:
$grepstreng filnavn1 filnavn2For eksempel, for å søke etter en strengmedarbeider i våre to filer testfile1 og testfile2, har vi brukt følgende kommando:
$grepansattes testfil1 testfil2Kommandoen ovenfor viser alle linjene som inneholder strengen ansatte fra begge filene testfile1 og testfile2.
Du kan også bruke et jokertegn hvis alle filnavnene begynner med samme tekst.
$grepstrengfilnavn*Som hvis vi tar eksemplet ovenfor der filnavnene våre var testfile1 og testfile2 , vil kommandoen være:
$grepansattes testfil*Søk etter en streng i en fil ved å ignorere tilfelle av strengen
Som oftest har du støtt på det når du søker etter noe ved hjelp av grep, men ikke mottar utdata. Dette skjer på grunn av en uoverensstemmelse mellom sakene mens du søker etter en streng. Som i vårt eksempel, hvis vi bruker feil Ansatt i stedet for ansatt , vil den returnere null ettersom filen vår inneholder strengen ansatt med små bokstaver.
Du kan be grep om å ignorere tilfellet med søkestreng ved å bruke –i flagg etter grep som følger:
$grep–I strengfilnavnVed å bruke –i -flagget, vil kommandoen utføre sakens ufølsomt søk og returnere alle linjene som inneholder strengen ansatt i det uten å ta hensyn til at bokstavene er store eller små.
Søk med 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 sluttord. Ved å gjøre det trenger du ikke å skrive hele linjen med kommandoen grep. Følgende syntaks kan brukes til dette formålet.
$grepstartord.*endingKeyword filnavnFor eksempel, for å søke etter en linje i en fil som heter testfile1 som starter med strengen dette og slutter med strengdata, har vi brukt følgende kommando:
$grepdette.*datatestfil 1Det vil skrive ut hele linjen fra testfil 1 som inneholder uttrykket (startordet for dette og sluttsøkeorddataene).
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 strengmatch sammen med selve den matchede strengen. Følgende syntaks kan brukes til dette formålet:
$grep -TIL <N>strengfilnavnDet vil vise N antall linjer etter at strengen er matchet i den angitte filen, inkludert den matchede strengen.
Dette er for eksempel vår eksempelfil som heter testfil2 .
Følgende kommando sender ut den matchede linjen som inneholder strengen ansatt , sammen med de 2 linjene etter den.
$grep-TIL2–Jeg ansatt testfil2Tilsvarende, for å vise N antall linjer før den matchede strengen i en bestemt fil, bruker du følgende syntaks:
$grep -B <N>strengfilnavnFor å vise N antall linjer rundt strengen i en bestemt fil, bruker du følgende syntaks:
$grep -C <N>strengfilnavnFremhever søket
Grep som standard skrive ut matchende linjer, men viser ikke hvilken del av linjen som samsvarer. Hvis du bruker –color -alternativet med grep, vil det vise hvor bearbeidingsstrengene vises i filen din. Grep bruker som standard den røde fargen for å markere.
Følgende syntaks kan brukes til dette formålet:
$grepstrengfilnavn--fargeTeller antall kamper
Hvis du vil telle hvor mange ganger et bestemt ord vises i en bestemt fil, kan du bruke grep med –c -alternativet. Det returnerer bare antall kamper i stedet for selve kampene. Følgende syntaks kan brukes til dette formålet:
$grep–C strengfilnavnDette er vår eksempelfil som ser slik ut:
Følgende er et eksempel på en kommando som returnerte antall ganger ordet fil dukket opp i en fil med navnet testfil3 .
Invertert søk
Noen ganger vil du utføre et omvendt søk som viser alle linjene bortsett fra det som samsvarer med inngangen. For å gjøre det, bruker du bare –v -flagget etterfulgt av grep:
$grep–V strengfilnavnFor eksempel for å vise alle linjene i en fil testfil3 som ikke inneholder ordet konto i dem, har vi brukt følgende kommando:
$grep–V testfile3Bruke Grep med andre kommandoer
Grep kan også brukes til å filtrere ut det nødvendige resultatet fra forskjellige kommandoer. For eksempel fra passende - installert liste kommandoutgang, vil du bare finne pakkene som ble installert automatisk, du kan filtrere ut resultatet ved å bruke grep som følger:
$passende-installertliste| grepAutomatisk
På samme måte gir lscpu detaljert informasjon om CPU -en. Hvis du bare er interessert i informasjonen om CPU -arkitekturen, kan du filtrere den ut ved hjelp av følgende kommando:
$lscpu| grepArkitekturI denne artikkelen har vi beskrevet noen eksempler som vil hjelpe deg med å forstå grep -kommandoene og bruken av dem under forskjellige forhold. Å ha et godt grep om grep -kommandoen kan spare mye tid hvis du trenger å se på store konfigurasjoner eller logge filer og skumme nyttig informasjon gjennom dem.