Skaper | Ken thompson |
---|---|
Første versjon | 1974 |
Operativsystem | Unix og Unix type |
Type | UNIX-verktøy ( d ) |
grep er et kommandolinje streng søkeprogram , opprinnelig skrevet for UNIX av Ken Thompson , og senere forbedret ved å bruke Aho-Corasick algoritme .
Det er mange implementeringer av grep på forskjellige systemer , spesielt under alle UNIX-lignende systemer. En av de mest populære implementeringene er GNU grep.
Historisk sett kommer navnet fra en av ed tekstredigerings kommandoene som er tilgjengelige på UNIX, hvis syntaks er:
:g/re/p"Søk Denne kommandoen middel g verall fyrstikker med den vanlige uttrykket (på engelsk, r egular e Xpression ) og trykk ( p rint ) linjer i hvilken den tilsvarer". Som standard oppfører grep seg akkurat som denne kommandoen. Imidlertid er det mange kommandolinjealternativer for å endre oppførselen.
Den vanlige oppførselen til grep er å ta et vanlig uttrykk som et argument, lese data fra standardinndata eller en liste over filer, og skrive linjer som inneholder samsvar med det vanlige uttrykket til standardutdata.
For eksempel lar grep deg søke etter linjer som inneholder navnet Durand i en telefonkontaktfil:
$ grep Durand ListeNuméros.txtvil bare returnere linjer som inneholder Durand :
Guénolé Durand, 0723237694 Bernard Durand, 0966324355grep er et filter som gjør det mulig å kombinere det med andre kommandoer, i form av en rørledning .
Dens ytelse og brukervennlighet gjør den egnet for effektivt å søke etter strenger i et komplekst filetre. Det brukes for eksempel til å finne alle forekomster av navnet på en funksjon i kildekoden til et program eller strenger i konfigurasjonsfiler. Til tross for tilstedeværelsen av lignende funksjonalitet i mange programmer, for eksempel Emacs eller vi , foretrekker mange brukere å bruke grep direkte, selv når de bruker disse programmene.
Grep-kommandoen er begrenset til visse aspekter av tegn. For eksempel tillater det ikke søk i filer kodet i UTF-16. Det er imidlertid mulig å søke hvis filen tidligere er konvertert til UTF-8-format. Imidlertid er støtte for UTF-8 bare mulig når man vurderer hvert tegn som en sekvens av byte.
Det er mange derivater av grep. Blant dem :
Merk at grep egrep fgrepog rgrepble distribuert i flere separate binære filer på noen versjoner av Unix, og det er derfor de ofte er tilgjengelige. Men i virkeligheten har de i dag nøyaktig de samme effektene som de forskjellige alternativene grep.
De fleste av disse grep-variantene har blitt portet til mange operativsystemer. Dette kalles en moderne implementering av grep.
Mange andre kommandoer inneholder ordet "grep". For eksempel viser pgrep- verktøyet antall prosesser hvis navn samsvarer med det vanlige uttrykket.
GNU grep er implementeringen av UNIX grep- kommandoen av GNU Project startet av Richard Stallman på 1980-tallet. Det er gratis programvare distribuert under vilkårene i GNU General Public License .
Grep- kommandoen ble opprinnelig skrevet for UNIX av Ken Thompson . Som en del av GNU- prosjektet , Mike Haerkal, vil implementere grep i fri programvare før slutten av 1980-tallet.
Gjennomføringen grep av GNU-prosjektet er nå mye brukt av systemer Linux , FreeBSD , men også Mac OS X .
Som akronym er "grep" et uttalt ord, både på fransk og engelsk. Engelskspråklige grep-brukere bruker ofte navnet sitt som et verb, som betyr "å lete etter noe i en fil" , slik man ville gjort med grep-verktøyet. Det direkte objektet betegner deretter filene der det skal søkes i: “ Kibo tok tak i Usenet- spolen etter navnet sitt. (Som betyr: "Kibo søkte etter navnet sitt i Usenet- spolen ."). På fransk brukes ordet sjeldnere som et verb fra den første gruppen: "greppe les logs for å se om serveren har mottatt forespørselen din." "
I forlengelsen har ordet "grep" også blitt et synonym for selve regulære uttrykk. Mange redaktører eller tekstbehandlere tilbyr i dag søkefunksjonalitet ved å bruke vanlige uttrykk, som de ofte omtaler som "grep-verktøy" eller "grep-modus", der grep-mønstre kan legges inn. Denne upresisjonen er forvirrende, spesielt i miljøer som ikke er UNIX.
Windows ' findstr- kommando er faktisk QGrep, en GREP som passer for Windows. Den støtter vanlige uttrykk, men syntaksen er forskjellig fra grep.
For å ha samme grep under Windows, må du enten installere cygwin eller mer enkelt grep for GnuWin32- prosjektet . En passende versjon kan også bli funnet på Tim Charrons nettsted (se eksterne lenker nedenfor).
Kommandoen inkluderer i Cisco IOS utfører de mest grunnleggende funksjonene til grep. For eksempel showet running-config | inkluderer 192.168.1.1 vil vise linjene i den aktive konfigurasjonen som inneholder adressen 192.168.1.1.
ack, skrevet i Perl, er programvare definert som "ack, better than grep, et kraftig forskningsverktøy for programmerere":