logo

Grep-kommando i Linux/Unix med eksempler

'grep'-kommandoen står for 'global regulært uttrykk print' . grep-kommandoen filtrerer innholdet i en fil som gjør søket vårt enkelt.

Det er et kommandolinjeverktøy for å søke i ren tekstdatagrupper etter linjer som er det samme som et regulært uttrykk. Navnet 'grep' kommer fra kommandoen, dvs. ed, som inneholder samme effekt. Opprinnelig ble grep designet for Unix-operativsystemet, men det ble tilgjengelig for hvert Unix-lignende system senere og noen få andre som OS 9.

grep-filteret finner en fil for et spesifikt tegnmønster og viser hver linje som inkluderer det mønsteret. Tegn skal stå i anførselstegn hvis de forekommer i mønsterparameteren med en spesiell betydning for skallet. Vanligvis må vi omslutte hele mønsteret i ett anførselstegn hvis mønsterparameteren ikke er en vanlig streng.

I et uttrykk som [a-z] beskriver minustegnet (-) cml et område basert på gjeldende sorteringsrekkefølge. En sorteringsrekkefølge kan spesifisere tilsvarende klasser i tegnområder for bruk. grep-kommandoen antar stdin når ingen filer er nevnt.

Mønsteret kalles det regulære uttrykket som finnes inne i filen. Mønsteret er begrensede regulære uttrykk i formatet til egrep- eller ed-kommandoen. grep-kommandoen bruker en solid ikke-deterministisk algoritme. Det kommer godt med når vi trenger å filtrere store loggfiler.

Kort historie om grep

Før den fikk tittelen, var grep et konfidensielt verktøy spesifisert av Ken Thompson for å finne filer for flere mønstre. Ukjent for sin eksistens, Doug Mcllroy spurte Thompson om å spesifisere en slik funksjon. Svarer at han over natten ville tenke på et slikt verktøy. Thompson gjorde forbedringer og korrigerte myrer i omtrent én time på programmet sitt kjent som 's' (eller søk). Han presenterte funksjonen for Mcllroy dagen etter, som sa at det var det samme som han ønsket. Beretningen til Thompson kan beskrive troen på at grep-kommandoen ble spesifisert over natten.

numpy mener

Thompson spesifiserte den første versjonen i PDP-11 assembly language for å støtte Lee E. McMohan sjekke Federalist Papers-teksten for å bestemme det enkelte papirets forfatterskap. ed-tekstredigereren hadde støtte for regulære uttrykk, men kunne ikke brukes på så stor tekst; Thompson kopierte den koden til et frittstående verktøy. Han valgte navnet på grunn av i ed; grep-kommandoen ville skrive ut hver linje på samme måte som det beskrevne mønsteret. Først ble grep lagt til i versjon 4 Unix, og sa det 'det er generelt sitert som det prototypiske programvareverktøyet' , godkjente Mcllroy grep med 'ugjenkallelig inngrodd' verktøyfilosofien til Thompson i Unix.

Implementeringer av grep

En rekke grep-implementeringer finnes i flere programvareutviklingsmiljøer og operativsystemer. Tidlige versjoner inkluderte fgrep og egrep, introdusert i 7-versjonen av Unix. egrep-versjonen støtter syntaks for et utvidet regulært uttrykk inkludert av Alfred Aho etter den originale regulære uttrykksimplementeringen av Ken Thompson. Fgrep-versjonen finner en hvilken som helst fast strengliste med Aho-Corasick strengmatchingsalgoritme . Disse versjonsbinærfilene er tilgjengelige i moderne systemer, kobler til grep eller kaller grep et skallskript ved å bruke riktig flagg lagt til mens de vanligvis er distribuert på POSIX-systemene.

Andre kommandoer inkluderer 'grep' ord for å representere de finner verktøy, vanligvis de som er avhengige av samsvar med regulære uttrykk. For eksempel, verktøyet, dvs. 'pgrep' , viser prosessene hvis titler er de samme som det angitte regulære uttrykket.

  • Grep er tittelen på den innebygde funksjonen som søker etter elementene i en liste som underholder en bestemt egenskap i Perl programmeringsspråk.
  • Vanligvis kalles denne funksjonen av høyere orden 'filter' eller 'hvor' på et annet språk.
  • Kommandoen, dvs. pcregrep , er en grep-implementering som bruker syntaksen for Perl regulære uttrykk. Den samme funksjonaliteten kan legges til grep GNU-versjonen ved å bruke -P-flagget.
  • Også grep-porter (f.eks. in GnuWin32 og Cygwin ) kjøres på Microsoft Windows. Noen få Windows-versjoner gir den samme findstr- eller qgrep-kommandoen.
  • Også grep-kommandoen er en del av MSX-DOS2-verktøyene til ASCII for 2-versjonen av MSX-DOS.
  • Kommandoene fgrep, egrep og grep har blitt sendt til IBM i OS.
    Adobe InDesign-programvaren har GREP-funksjoner (siden CS3-utgaven) i dialogboksen for endring/finn 'GREP' og spesifisert med CS4 i 'GREP-stiler' avsnittsstiler.

Hvordan installere grep i Linux?

Grep kommer forhåndsinstallert i nesten alle distribusjoner av Linux. Men i tilfelle kan vi installere den med kommandoen nedenfor i terminalvinduet hvis den mangler fra systemet vårt:

 $ sudo apt-get install grep 

grep med pipe

'murerens formel'

Kommandoen 'grep' brukes vanligvis med pipe (|) .

Syntaks:

 command | grep 

Eksempel:

 cat marks.txt | grep 9 

Linux Grep-filtre 1

Se på øyeblikksbildet ovenfor, grep-kommandoen filtrerer alle dataene som inneholder '9'.

grep uten pipe

Den kan også brukes uten rør.

Syntaks:

inordergjennomgang
 grep 

Eksempel:

 grep 9 marks.txt 

Linux Grep-filtre 2

Se på øyeblikksbildet ovenfor, grep-kommandoen gjør det samme arbeidet som tidligere eksempel, men uten pipe.

grep alternativer

    grep -vM: Kommandoen 'grep -v' viser linjer som ikke samsvarer med det angitte ordet.

    Syntaks:

     grep -v 

    Eksempel:

     grep -v 9 marks.txt 

    Linux Grep-filtre 3

    Se på øyeblikksbildet ovenfor, kommando 'grep -v 9 marks.txt' viser linjer som ikke inneholder søkeordet vårt '9'.

    grep -i: 'grep -i'-kommandoen filtrerer utdata på en måte som ikke skiller mellom store og små bokstaver.

    Syntaks:

     grep -i 

    Eksempel:

    java sammenligne strenger
     grep -i red exm.txt 

    Linux Grep-filtre 4

    Se på øyeblikksbildet ovenfor, kommando 'grep -i red exm.txt' viser alle linjer som inneholder 'rød', enten det er store eller små bokstaver.

    grep -A/ grep -B/ grep -C

    grep -En kommando brukes til å vise linje etter resultatet .

    grep -B-kommandoen brukes til å vise linje før resultatet .

    grep -C-kommandoen brukes til å vise linje etter og linje før resultatet.

    Du kan bruke (A1, A2, A3.....)(B1, B2, B3...)(C1, C2, C3...) for å vise et hvilket som helst antall linjer.

    Syntaks:

    c# datetime
     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å øyeblikksbildet ovenfor, kommando 'grep -A1 gul exm.txt' viser søkt linje med neste påfølgende linje, kommando 'grep -B1 gul exm.txt' viser søkt linje med én foregående linje og kommando 'grep -C1 gul exm.txt' viser søkt linje med én foregående og påfølgende linje.