logo

Grep-kommando i Linux/Unix med eksempler

Kommandoen 'grep' står for 'globalt regulært udtryk print' . grep-kommandoen filtrerer indholdet af en fil, hvilket gør vores søgning let.

Det er et kommandolinjeværktøj til at søge i almindelig tekstdatagrupper efter linjer, der er det samme som et regulært udtryk. Navnet 'greb' kommer fra kommandoen, altså ed, som indeholder samme effekt. Oprindeligt var grep designet til Unix-operativsystemet, men det blev tilgængeligt for hvert Unix-lignende system senere og et par andre som OS 9.

grep-filteret finder en fil til et bestemt tegnmønster og viser hver linje, der indeholder det mønster. Tegn skal stå i anførselstegn, hvis de forekommer i mønsterparameteren med en særlig betydning for skallen. Normalt skal vi omslutte hele mønsteret i et anførselstegn, hvis mønsterparameteren ikke er en fælles streng.

I et udtryk som [a-z] beskriver minustegnet (-) cml et område baseret på den aktuelle sorteringsrækkefølge. En sorteringsrækkefølge kan angive tilsvarende klasser i tegnintervaller til brug. grep kommandoen antager stdin, når ingen filer er nævnt.

Mønsteret kaldes det regulære udtryk, der findes inde i filen. Mønsteret er begrænsede regulære udtryk i formatet af kommandoen egrep eller ed. grep-kommandoen anvender en solid ikke-deterministisk algoritme. Det er praktisk, når vi skal filtrere store logfiler.

Kort historie om grep

Før det fik titlen, var grep et fortroligt hjælpeprogram specificeret af Ken Thompson for at finde filer til flere mønstre. Ukendt til dens eksistens, Doug Mcllroy bad Thompson om at specificere en sådan funktion. Svarede, at han natten over ville tænke på sådan et værktøj. Thompson lavede forbedringer og korrigerede moser i omkring en time på sit program kendt som 's' (eller søg). Han præsenterede funktionen for Mcllroy dagen efter, som sagde, at det var det samme, som han ønskede. Beretningen om Thompson kan beskrive troen på, at grep-kommandoen blev angivet natten over.

numpy betyder

Thompson specificerede den oprindelige version i PDP-11 assemblersprog for at understøtte Lee E. McMohan kontrollere Federalist Papers-teksten for at bestemme det enkelte blads forfatterskab. ed-teksteditoren havde understøttelse af regulære udtryk, men kunne ikke bruges på så stor tekst; Thompson kopierede denne kode til et selvstændigt værktøj. Han valgte navnet på grund af i ed; grep-kommandoen ville udskrive hver linje på samme måde som det beskrevne mønster. Først blev grep tilføjet i version 4 Unix og sagde det 'det er generelt citeret som det prototypiske softwareværktøj' , godkendte Mcllroy grep med 'uigenkaldeligt indgroet' Thompsons værktøjers filosofi i Unix.

Implementeringer af grep

En række grep-implementeringer er til stede i flere softwareudviklingsmiljøer og operativsystemer. Tidlige versioner inkluderede fgrep og egrep, introduceret i 7-versionen af ​​Unix. egrep-versionen understøtter syntaks for et udvidet regulært udtryk inkluderet af Alfred Aho efter den originale regulære udtryksimplementering af Ken Thompson. Fgrep-versionen finder enhver fast strengliste med Aho-Corasick streng matchende algoritme . Disse versionsbinære filer er tilgængelige i moderne systemer, der forbinder til grep eller kalder grep for et shell-script ved at bruge det korrekte flag, der er tilføjet, mens det generelt er installeret på POSIX-systemerne.

Andre kommandoer inkluderer 'greb' ord til at repræsentere, de er ved at finde værktøjer, almindeligvis dem, der afhænger af matches med regulære udtryk. For eksempel, værktøjet, dvs. 'pgrep' , viser de processer, hvis titler er de samme som det normale udtryk.

  • Grep er titlen på den indbyggede funktion, der søger efter de elementer i en liste, der underholder en bestemt egenskab i Perl programmeringssprog.
  • Typisk kaldes denne højere ordens funktion 'filter' eller 'hvor' på et andet sprog.
  • Kommandoen, dvs. pcregrep , er en grep-implementering, der bruger syntaksen for Perl regulære udtryk. Den samme funktionalitet kan tilføjes til grep GNU-versionen ved hjælp af -P-flaget.
  • Også grep-porte (f.eks. in GnuWin32 og Cygwin ) køre på Microsoft Windows. Nogle få Windows-versioner giver den samme findstr- eller qgrep-kommando.
  • Også grep-kommandoen er en del af MSX-DOS2-værktøjerne i ASCII til 2-versionen af ​​MSX-DOS.
  • Kommandoerne fgrep, egrep og grep er blevet sendt til IBM i OS.
    Adobe InDesign-softwaren har GREP-funktioner (siden CS3-udgaven) i dialogboksen for at ændre/finde 'GREP'-fanen og angivet ved hjælp af CS4 i 'GREP-stile' afsnitstypografier.

Hvordan installeres grep i Linux?

Grep kommer forudinstalleret i næsten alle distributioner af Linux. Men i tilfælde af, at vi kan installere det med nedenstående kommando i terminalvinduet, hvis det mangler fra vores system:

 $ sudo apt-get install grep 

grep med rør

side ned tastatur

Kommandoen 'grep' bruges generelt med pipe (|) .

Syntaks:

 command | grep 

Eksempel:

 cat marks.txt | grep 9 

Linux Grep-filtre 1

Se på ovenstående snapshot, grep-kommandoen filtrerer alle data, der indeholder '9'.

grep uden rør

Den kan også bruges uden rør.

Syntaks:

inorder gennemkøring
 grep 

Eksempel:

 grep 9 marks.txt 

Linux Grep-filtre 2

Se på ovenstående snapshot, grep kommando gør det samme arbejde som tidligere eksempel, men uden pipe.

grep muligheder

    grep -vM: Kommandoen 'grep -v' viser linjer, der ikke matcher det angivne ord.

    Syntaks:

     grep -v 

    Eksempel:

     grep -v 9 marks.txt 

    Linux Grep-filtre 3

    Se på ovenstående snapshot, kommando 'grep -v 9 marks.txt' viser linjer, der ikke indeholder vores søgeord '9'.

    grep -i: Kommandoen 'grep -i' filtrerer output på en måde, hvor der ikke er store og små bogstaver.

    Syntaks:

     grep -i 

    Eksempel:

    java sammenligne strenge
     grep -i red exm.txt 

    Linux Grep-filtre 4

    Se på ovenstående snapshot, kommando 'grep -i red exm.txt' viser alle linjer, der indeholder 'rød', uanset om det er med store eller små bogstaver.

    grep -A/ grep -B/ grep -C

    grep -En kommando bruges til at vise linje efter resultatet .

    grep -B kommando bruges til at vise linje før resultatet .

    grep -C kommando bruges til at vise linje efter og linje før resultatet.

    Du kan bruge (A1, A2, A3.....)(B1, B2, B3...)(C1, C2, C3...) til at vise et vilkårligt antal linjer.

    Syntaks:

    Hent youtube-videoer med vlc
     grep -A grep -B grep -C 

    Eksempel:

     grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt 

    Linux Grep-filtre 5

    Se på ovenstående snapshot, kommando 'grep -A1 gul exm.txt' viser søgt linje med næste efterfølgende linje, kommando 'grep -B1 gul exm.txt' viser søgt linje med én forudgående linje og kommando 'grep -C1 gul exm.txt' viser søgte linje med en forudgående og efterfølgende linje.