Linux Grep Guide til avancerede brugere

Enhver, der administreres en Linux-server i en vis mængde tid, er bekendt med kommandoen "grep". Med Linux's filosofi om "Alt er en fil" bliver grep afgørende for at krydse logfiler, konfigurationsfiler, kontrollere visse fejl i outputfiler og få antallet af kampe. I denne tutorial vil jeg vise dig et par avancerede anvendelser af grep, der stadig kan være temmelig nyttige. Disse er ikke svært at finde på man pages, men de er bare en udvidelse af greps standard funktionalitet.

Søger efter flere ord på samme tid

Normalt går brugen til grep sådan som sådan:

grep 'mønster' filnavn

Hvor 'mønster' er et givet mønster eller regelmæssigt udtryk, der passer til hinanden. Lad os dog sige, at du har en fejllogfil og udfører rutinemæssig vedligeholdelse. Du vil kontrollere logfilerne for eksistensen af ​​nogle søgeord, der spænder over forskellige kilder. Normalt skal du bruge et separat grep-udtryk for hver af disse sætninger.

Vi kan dog nemt bruge regulære udtryk med parameteren "-E". Til at begynde med har vi en fil kaldet "animal-count" med følgende indhold:

grep mønster filnavn

Lad os sige, at vi vil søge i denne fil for disse to sætninger:

spurv
hunde

Vi kan bruge følgende grep udtryk:

grep -Ew 'sparrow | hunde' dyrtælling

Der er to flag:

  1. -E betyder at vi bruger udvidede regulære udtryk
  2. -w betyder, at vi kun ønsker at matche hele ord

For at gøre det endnu nemmere kan vi bare erstatte "grep -E" med "egrep". Så ovenstående kommando bliver:

egrep -w 'sparrow | hunde' dyrtælling

Og her er output:

egrep-w-count

Vi kan matche så mange ord som vi har brug for på den måde. Hvis du vil fjerne "ord" kravet og i stedet bare vil have en straight up string match, så kan du droppe parameteren "w".

Søgning på en hel mappe til en kamp og visning af filnavnet

Vi tænker normalt på grep, der søger enten en fil eller et bestemt output fra en anden kommando. Vi kan dog også bruge det til at søge i en hel mappe med filer på samme tid.

Lad os f.eks. Sige, at du har en masse logfiler spredt rundt om i systemet. Trods alt har mange pakker deres egne placeringer til logfiler. For at gøre det nemt for dig, opretter du en ny mappe, der indeholder symbolske links til alle de forskellige logfiler, der er af interesse for dig.

Nu kan du søge dem alle sammen med grep ved hjælp af kommandoen "-R". Hovedstaden "R" fortæller grep for at inkludere symbolske links. Den lille "r" ignorerer symbolske links, der ikke findes på kommandolinjen som standard.

I det følgende eksempel søger vi i den aktuelle mappe for en streng:

grep -r sparrow.

Prikken (.) I slutningen angiver den aktuelle mappe. Vi får følgende output:

grep -r

Du kan se nedenfor, at det også søger rekursivt med et andet mønster match:

Rekursiv fil søgning med grep -r

Dette er meget nyttigt for at søge en flok filer på samme tid. Udgangen viser også navnet på filen, der indeholder de matchende strenge! Jeg kan godt lide denne løsning med "-R" for at søge gennem et sæt symbolske links på én gang for at spare tid.

Tæller antallet af matchende linjer

Nogle gange vil du vide, hvor mange gange et bestemt søgeord er optrådt i grep. Hvis du for eksempel søger websitet filer til en bestemt edderkop, vil du have et antal af linjer, der indeholder en bestemt brugeragent.

For at gøre det tilføjer vi simpelthen parameteren "-c". Husk at dette fjerner den regulære output fra grep, og det vil ikke længere vise dig individuelle kampe. For eksempel uden parameteren "-c":

grep rr dyrtælling

Vi får en simpel liste over begivenheder. Med "-c" dog:

grep -crr animal-count

Og vi får et antal af linjer:

grep kommando tæller antallet af matchende linjer

Som du kan se, viser den ikke længere hver forekomst.

Grep er et ekstremt kraftfuldt værktøj, og dets funktionalitet er kun steget gennem årene. Vi kan skabe komplicerede regulære udtryk, og endda skabe et udtryk for at formatere outputen af ​​en fil for at gøre det nemmere at læse. Disse eksempler på avanceret grep-brug vil give dig en smag af hvad der er muligt, og vil forhåbentlig opmuntre dig til at dyve i manualen selv!

Hvis du er en af ​​vores fuldt administreret web hosting kunder, du behøver ikke komme med komplekse grep-kommandoer selv, du kan bare bede vores systemadministratorer om at hjælpe dig med grep-kommandoer. De er tilgængelige 24 / 7 og vil tage sig af din anmodning straks.

Hvis du kunne lide dette indlæg på avancerede grep-kommandoer, kan du dele den med dine venner via sociale medier. Hvis du har spørgsmål vedrørende denne øvelse, bedes du skrive en kommentar nedenfor. Tak!

Oprindelig artikel

Efterlad en kommentar

Dette websted bruger Akismet til at reducere spam. Lær, hvordan dine kommentardata behandles.