grep

Grep Command i Linux

Grep Command i Linux
Grep-kommandoen (global regulært udtryk) er den mest kraftfulde og regelmæssigt anvendte Linux-kommandolinjeværktøj. Ved hjælp af Grep kan du søge efter nyttige oplysninger ved at angive et søgekriterium. Det søger efter et bestemt udtryk i en bestemt fil. Når den finder et match, udskriver den alle linjerne i en fil, der matchede det angivne mønster. Det er praktisk, når du skal filtrere gennem store logfiler.

I denne artikel vil vi forklare brugen af ​​grep-værktøjet med forskellige eksempler. Vi bruger Debian 10 til at forklare de kommandoer og metoder, der er nævnt i denne artikel.

Installation af Grep

Grep kommer installeret i de fleste Linux-distributioner. Men hvis det mangler på dit system, kan du installere det ved hjælp af følgende metode i Terminal:

$ sudo apt-get install grep

Brug af Grep

Her er den grundlæggende syntaks for grep-kommandoen. Det starter med grep efterfulgt af nogle muligheder og søgekriterier og slutter derefter med filnavnet.

$ grep [optioner] MØNSTER [FIL ...]

Søg efter filer

For at søge efter et filnavn i et bibliotek, der indeholder en bestemt streng i det, kan du bruge grep på følgende måde:

$ ls -l | grep -i “streng

For eksempel at søge efter et filnavn, der indeholder en streng “prøve“, Kommandoen ville være:

$ ls -l | grep -i test

Denne kommando viser alle de filer, der indeholder strengen “prøve”.

Søg efter en streng i en fil

For at søge efter en streng i en bestemt fil kan du bruge følgende kommandosyntaks:

$ grep "streng" filnavn

For eksempel at søge efter en streng “prøve”I en fil med navnet testfil1, vi har brugt følgende kommando:

$ grep “medarbejder” testfil1

Ovenstående output har returneret sætningen fra testfil1 der indeholder strengen “medarbejder”.

Søg efter en streng i flere filer

For at søge efter en streng i flere filer kan du bruge følgende kommandosyntaks:

$ grep “streng” filnavn1 filnavn2

For eksempel for at søge efter en streng "medarbejder" i vores to filer testfile1 og testfile2 har vi brugt følgende kommando:

$ grep “medarbejder” testfil1 testfil2

Ovenstående kommando viser alle linjer, der indeholder strengen "medarbejder" fra begge filer testfil1 og testfil2.

Du kan også bruge et jokertegn, hvis alle filnavne begynder med den samme tekst.

$ grep "streng" filnavn *

Ligesom hvis vi tager ovenstående eksempel, hvor vores filnavne var testfil1 og testfil2 , kommandoen ville være:

$ grep “medarbejder” testfil *

Søg efter en streng i en fil ved at ignorere strengens sag

Oftest har du stødt på det, når du søger efter noget ved hjælp af grep, men ikke modtager en output. Dette sker på grund af uoverensstemmelse mellem sager, når du søger efter en streng. Som i vores eksempel, hvis vi fejlagtigt bruger “Medarbejder" i stedet for "medarbejder”, Den returnerer nul, da vores fil indeholder strengen“medarbejder”Med små bogstaver.

Du kan bede grep om at ignorere tilfældet med søgestreng ved at bruge -i-flag efter grep som følger:

$ grep -i "streng" filnavn

Ved at bruge -i-flaget udfører kommandoen den ufølsomme søgning efter store bogstaver og returnerer alle linjer, der indeholder strengen “medarbejder”I det uden at tage højde for, bogstaverne er med store eller små bogstaver.

Søg ved hjælp af det regulære udtryk

Hvis det bruges korrekt, er det regulære udtryk en meget effektiv funktion i grep. Med kommandoen Grep kan du definere et regulært udtryk med et start- og slutord. Ved at gøre dette behøver du ikke skrive hele linjen med grep-kommandoen. Følgende syntaks kan bruges til dette formål.

$ grep “start nøgleord.* endingKeyword ”filnavn

For eksempel for at søge efter en linje i en fil med navnet testfil1, der starter med strengen "dette" og slutter med strengen "data", har vi brugt følgende kommando:

$ grep “dette.* data ”testfil1

Det udskriver hele linjen fra testfil1 indeholdende udtrykket (startord "dette" og slutordet "data").

Udskriv bestemt antal linjer efter / før søgestrengen

Du kan også vise det specifikke antal linjer i en fil før / efter en strengkamp sammen med selve den matchede streng. Følgende syntaks kan bruges til dette formål:

$ grep -A "Streng" filnavn

Det viser N antal linjer, efter at strengen er matchet i den angivne fil inklusive den matchede streng.

For eksempel er dette vores eksempelfil med navnet testfil2.

Den følgende kommando udsender den matchede linje, der indeholder strengen “medarbejder”, Sammen med de 2 linjer efter det.

$ grep -A 2 -i “medarbejder” testfil2

På samme måde skal du bruge følgende syntaks for at få vist N antal linjer før den matchede streng i en bestemt fil:

$ grep -B "Streng" filnavn

For at få vist N antal linjer omkring strengen i en bestemt fil skal du bruge følgende syntaks:

$ grep -C "Streng" filnavn

Fremhæv søgningen

Grep udskriver som standard matchede linjer, men viser ikke, hvilken del af linjen der er matchet. Hvis du bruger -color option med grep, vil det vise, hvor bearbejdningsstrengene vises i din fil. Grep bruger som standard den røde farve til fremhævning.

Følgende syntaks kan bruges til dette formål:

$ grep "streng" filnavn - farve

Tæller antallet af kampe

Hvis du vil tælle, hvor mange gange et bestemt ord vises i en bestemt fil, kan du bruge grep med -c-indstillingen. Det returnerer kun antallet af kampe i stedet for selve kampene. Følgende syntaks kan bruges til dette formål:

$ grep -c "streng" filnavn

Dette er vores eksempelfil, der ser ud:

Følgende er et eksempel på en kommando, der returnerede antallet af gange ordet fil dukkede op i en fil med navnet testfil3.

Inverteret søgning

Nogle gange vil du udføre en omvendt søgning, der viser alle linjer undtagen de, der matchede input. For at gøre det skal du blot bruge -v-flag efterfulgt af grep:

$ grep -v "streng" filnavn

For eksempel at vise alle linjerne i en fil testfil3 der ikke indeholder ordet "konto" i dem, har vi brugt følgende kommando:

$ grep -v "konto" testfil3

Brug af Grep med andre kommandoer

Grep kan også bruges til at filtrere det krævede resultat fra forskellige kommandoutput. For eksempel fra “apt-installeret liste ” kommandoutput, du vil kun finde de pakker, der blev installeret automatisk, du kan filtrere resultatet ud ved hjælp af grep som følger:

$ apt - installeret liste | grep automatisk

På samme måde giver lscpu detaljerede oplysninger om CPU'en. Hvis du bare er interesseret i oplysningerne om CPU-arkitekturen, kan du filtrere dem ud ved hjælp af følgende kommando:

$ lscpu | grep Arkitektur

I denne artikel har vi beskrevet nogle eksempler, der hjælper dig med at forstå grep-kommandoerne og dens anvendelse under forskellige forhold. At have et stærkt greb om grep-kommandoen kan spare meget tid, hvis du har brug for at se på store konfigurationer eller logfiler og skimme nyttige oplysninger igennem dem.

Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...
Mus Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Remap dine museknapper forskelligt til anden software med X-Mouse Button Control
Måske har du brug for et værktøj, der kan ændre din muses kontrol med hver applikation, du bruger. Hvis dette er tilfældet, kan du prøve en applikatio...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jeg har for nylig læst om Microsoft Sculpt Touch trådløs mus og besluttede at købe den. Efter at have brugt det et stykke tid besluttede jeg at dele m...