grep - grep
Originale forfattere | Ken Thompson |
---|---|
Utvikler (er) | AT&T Bell Laboratories |
Første utgivelse | November 1973 |
Operativsystem | Unix , Unix-lignende , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i |
Plattform | Kryssplattform |
Type | Kommando |
grep
er et kommandolinjeverktøy for å søke i vanlige tekstdatasett etter linjer som samsvarer med et vanlig uttrykk . Navnet kommer fra den ed kommando g / re / p ( g lobally søke etter en r egular e Xpression og p rint samsvarende linjer ), som har den samme virkning. grep
ble opprinnelig utviklet for Unix- operativsystemet, men senere tilgjengelig for alle Unix-lignende systemer og noen andre som OS-9 .
Historie
Før det ble navngitt, var grep et privat verktøy skrevet av Ken Thompson for å søke etter filer etter bestemte mønstre. Doug McIlroy , uvitende om eksistensen, ba Thompson om å skrive et slikt program. Som svar på at han ville tenke på et slikt verktøy over natten, korrigerte Thompson faktisk feil og foretok forbedringer i omtrent en time. Dagen etter presenterte han programmet for McIlroy, som sa at det var akkurat det han ønsket. Thompsons beretning kan forklare troen på at grep ble skrevet over natten.
Thompson skrev den første versjonen på PDP-11 forsamlingsspråk for å hjelpe Lee E. McMahon med å analysere teksten i Federalist Papers for å bestemme forfatterskapet til de enkelte papirene. Den redigerte tekstredigereren (også skrevet av Thompson) hadde støtte for vanlig uttrykk, men kunne ikke brukes på så mye tekst, så Thompson hentet denne koden til et frittstående verktøy. Han valgte navnet fordi kommandoen g/re/p i ed ville skrive ut alle linjene som samsvarer med et spesifisert mønster. grep
ble først inkludert i versjon 4 Unix . Sier at det er "vanligvis sitert som den prototypiske verktøy", McIlroy kreditert grep
med "ugjenkallelig ingraining" Thompson verktøy filosofi i Unix.
Prøvebruk
Følgende eksempel demonstrerer utdataene fra grep
kommandoen gitt forskjellige argumenter
$ grep root /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$ grep -n root /etc/passwd
1:root:x:0:0:root:/root:/bin/bash
12:operator:x:11:0:operator:/root:/sbin/nologin
$ grep -c false /etc/passwd
7
Implementeringer
En rekke grep
implementeringer er tilgjengelige i mange operativsystemer og programvareutviklingsmiljøer. Tidlige varianter inkludert egrep
og fgrep
introdusert i versjon 7 Unix . " egrep
" -Varianten støtter en utvidet syntaks for regulært uttrykk lagt til av Alfred Aho etter Ken Thompsons opprinnelige implementering av regulært uttrykk. " fgrep
" -Varianten søker etter en hvilken som helst av en liste over faste strenger ved hjelp av Aho - Corasick strengmatchingsalgoritme . Binærfiler av disse variantene vedvarer i de fleste moderne systemer, vanligvis koblet til grep
; Imidlertid har bruk av disse binære filene blitt avskrevet til fordel for bruk av -E
og -F
kommandolinjebrytere i grep
stedet.
Andre kommandoer inneholder ordet "grep" for å indikere at de er søkeverktøy, vanligvis de som er avhengige av regulære uttrykk. Den pgrep
verktøyet, for eksempel, viser prosessene med navn som samsvarer med et gitt regulært uttrykk.
I programmeringsspråket Perl er grep navnet på den innebygde funksjonen som finner elementer i en liste som tilfredsstiller en bestemt egenskap. Denne funksjonen av høyere orden er vanligvis navngitt filter
eller where
på andre språk.
Den pcregrep
kommandoen er en implementering av grep
som bruker Perl regulære uttrykk syntaks. Lignende funksjonalitet kan påberopes i GNU -versjonen av grep
med -P
flagget.
Porter av grep
( for eksempel i Cygwin og GnuWin32 ) kjøres også under Microsoft Windows . Noen versjoner av Windows har lignende qgrep
eller findstr
kommando.
En grep
kommando er også en del av ASCII 's MSX-DOS2 Verktøy for MSX-DOS versjon 2.
De grep , egrep og fgrep kommandoer har også blitt oversatt til IBM i operativsystemet.
Programvaren Adobe InDesign har funksjonene GREP (siden CS3 -versjon (2007)), i fanen " Finn/endre" dialogboksen "GREP", og introdusert med InDesign CS4 i avsnittsstiler "GREP -stiler".
enig
en grep (omtrentlig grep) samsvarer selv om teksten bare omtrent passer til søkemønsteret.
Denne påkallelsen finner nettmasker i filen myfile , men også ethvert annet ord som kan stammer fra den, gitt ikke mer enn to substitusjoner.
agrep -2 netmasks myfile
Dette eksemplet genererer en liste over treff med de nærmeste, det vil si de med færrest, erstatninger listet først. Kommandoflagget B betyr best :
agrep -B netmasks myfile
Bruk som verb
I desember 2003 la Oxford English Dictionary Online til utkast til oppføringer for "grep" som både et substantiv og et verb.
En vanlig verbbruk er uttrykket "Du kan ikke grep om døde trær" - noe som betyr at man lettere kan søke gjennom digitale medier ved å bruke verktøy som grep
, for eksempel , med en papirkopi (dvs. en laget av "døde trær", som i denne sammenhengen er en dysfemi for papir). Sammenlign med google .
Se også
- Boyer - Moore strengsøkealgoritme
- enig , en omtrentlig streng-matchende kommando
-
finn (Windows) , en DOS- og Windows -kommando som utfører tekstsøk, som ligner på en enkel
grep
-
find (Unix) , en Unix -kommando som finner filer etter attributt, veldig forskjellige fra
grep
- Liste over Unix -kommandoer
-
vgrep , eller "visuell
grep
" - ngrep , nettverket grep
Referanser
- Merknader
- Alain Magloire (august 2000). Grep: Søker etter et mønster . Iuniverse Inc. ISBN 0-595-10039-2.
- Hume, Andrew Grep kriger: Det strategiske søkeinitiativet. I Peter Collinson, redaktør, Proceedings of the EUUG Spring 88 Conference , side 237–245, Buntingford, Storbritannia, 1988. European UNIX User Group.
- Michael Hauben ; et al. (April 1997). Netizens: On the History and Impact of Usenet and Internet (Perspectives) . Wiley-IEEE Computer Society Press. ISBN 978-0-8186-7706-9.
Eksterne linker
- GNU Grep offisielle nettsted
- GNU Grep manual
- Plan 9 Programmerings Manual, Volume 1 -
- Inferno Generelle kommandoer Manuell -
- "hvorfor GNU grep er rask" - implementeringsdetaljer fra GNU greps forfatter.
- Command Grep - 25 praktiske eksempler