grep

Grep Command i Linux

Grep Command i Linux
Grep-kommandoen (global regulæruttrykk) er det kraftigste og mest brukte Linux-kommandolinjeprogrammet. Ved hjelp av Grep kan du søke etter nyttig informasjon ved å spesifisere et søkekriterium. Den søker etter et bestemt uttrykksmønster i en spesifisert fil. Når den finner samsvar, skriver den ut alle linjene i en fil som samsvarer med det angitte mønsteret. Det kommer godt med når du må filtrere gjennom store loggfiler.

I denne artikkelen vil vi forklare bruken av grep-verktøy 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 å bruke følgende metode i Terminal:

$ sudo apt-get install grep

Bruke 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 [opsjoner] 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 -l | grep -i “streng

For eksempel for å søke etter et filnavn som inneholder en streng “test“, Kommandoen ville være:

$ ls -l | grep -i test

Denne kommandoen lister opp 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:

$ grep “string” filnavn

For eksempel å søke etter en streng “test”I en fil som heter testfil1, vi har brukt følgende kommando:

$ grep “ansatt” testfil1

Ovennevnte utdata har returnert setningen fra testfil1 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:

$ grep “string” filnavn1 filnavn2

For eksempel, for å søke etter en streng "ansatt" i våre to filer testfile1 og testfile2, har vi brukt følgende kommando:

$ grep “ansatt” testfil1 testfil2

Ovennevnte kommando vil liste opp alle linjene som inneholder strengen “ansatt” fra både filene testfile1 og testfile2.

Du kan også bruke et jokertegn hvis alle filnavnene begynner med samme tekst.

$ grep “string” filnavn *

Som om vi tar eksemplet ovenfor der filnavnene våre var testfil1 og testfil2 , kommandoen ville være:

$ grep “ansatt” testfil *

Søk etter en streng i en fil ved å ignorere saken til strengen

Ofte har du opplevd det når du søker etter noe ved hjelp av grep, men ikke mottar utdata. Dette skjer på grunn av uoverensstemmelse mellom tilfeller mens du søker etter en streng. Som i eksempelet vårt, hvis vi feilaktig bruker “Ansatt" i stedet for "ansatt”, Vil den returnere null da 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 "streng" filnavn

Ved å bruke -i-flagget vil kommandoen utføre store og små bokstaver og søke tilbake alle linjene som inneholder strengen “ansatt”I den uten å ta hensyn til bokstavene er med store eller små bokstaver.

Søk med vanlig uttrykk

Hvis det brukes riktig, er det regulære uttrykket en veldig effektiv funksjon i grep. Med kommandoen Grep kan du definere et vanlig uttrykk med et start- og sluttord. Ved å gjøre dette trenger du ikke å skrive hele linjen med grep-kommandoen. Følgende syntaks kan brukes til dette formålet.

$ grep “startord.* endingKeyword ”filnavn

For eksempel, for å søke etter en linje i en fil som heter testfile1 som starter med strengen "dette" og slutter med strengen "data", har vi brukt følgende kommando:

$ grep “dette.* data ”testfil1

Det vil skrive ut hele linjen fra testfil1 som inneholder uttrykket (startord "dette" og det avsluttende søkeordet "data").

Skriv ut 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 den samsvarende strengen. Følgende syntaks kan brukes til dette formålet:

$ grep -A "Streng" filnavn

Det viser N antall linjer etter at strengen er matchet i den angitte filen inkludert den matchede strengen.

For eksempel er dette eksempelfilen vår testfil2.

Følgende kommando sender ut den samsvarende linjen som inneholder strengen “ansatt”, Sammen med de to linjene etter den.

$ grep -A 2 -i “ansatt” testfil2

På samme måte, for å vise N antall linjer før den samsvarende strengen i en bestemt fil, bruk følgende syntaks:

$ grep -B "Streng" filnavn

For å vise N antall linjer rundt strengen i en bestemt fil, bruk følgende syntaks:

$ grep -C "Streng" filnavn

Fremhever søket

Grep skriver som standard ut samsvarende linjer, men viser ikke hvilken del av linjen som samsvarer. Hvis du bruker -color-alternativet med grep, vil det vise hvor bearbeidingstrengene vises i filen din. Grep bruker som standard den røde fargen for utheving.

Følgende syntaks kan brukes til dette formålet:

$ grep “string” filnavn - farge

Teller antall kamper

Hvis du vil telle hvor mange ganger et bestemt ord vises i en bestemt fil, kan du bruke grep med -c. Den returnerer bare antall kamper i stedet for selve kampene. Følgende syntaks kan brukes til dette formålet:

$ grep -c "streng" filnavn

Dette er eksempelfilen vår som ser 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 de som samsvarer med inngangen. For å gjøre det, bruk ganske enkelt flagget -v etterfulgt av grep:

$ grep -v "streng" filnavn

For eksempel å vise alle linjene i en fil testfil3 som ikke inneholder ordet "konto" i dem, har vi brukt følgende kommando:

$ grep -v “konto” testfil3

Bruke Grep med andre kommandoer

Grep kan også brukes til å filtrere ut det nødvendige resultatet fra forskjellige kommandoer. For eksempel fra “apt -installert liste ” kommandoutgang, vil du bare finne pakkene som ble installert automatisk, du kan filtrere ut resultatet ved hjelp av grep som følger:

$ apt - installert liste | grep automatisk

På samme måte gir lscpu detaljert informasjon om CPUen. Hvis du bare er interessert i informasjonen om CPU-arkitekturen, kan du filtrere den ut med 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 godt grep om grep-kommandoen kan spare mye tid hvis du trenger å se på store konfigurasjoner eller loggfiler og skimme nyttig informasjon gjennom dem.

Hvordan bruke AutoKey til å automatisere Linux-spill
AutoKey er et desktopautomatiseringsverktøy for Linux og X11, programmert i Python 3, GTK og Qt. Ved å bruke skript og MACRO-funksjonalitet kan du aut...
Hvordan vise FPS-teller i Linux-spill
Linux-spill fikk et stort press da Valve kunngjorde Linux-støtte for Steam-klient og spillene deres i 2012. Siden den gang har mange AAA- og indiespil...
Hvordan laste ned og spille Sid Meier's Civilization VI på Linux
Introduksjon til spillet Civilization 6 er et moderne syn på det klassiske konseptet som ble introdusert i serien av Age of Empires-spillene. Ideen va...