grep - grep
|
Eksempel på
grepkommando | |
| Originale forfattere | Ken Thompson |
|---|---|
| Udvikler (er) | AT&T Bell Laboratories |
| Første udgivelse | November 1973 |
| Operativ system | Unix , Unix-lignende , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i |
| Platform | På tværs af platforme |
| Type | Kommando |
greper et kommandolinjeværktøj til at søge i almindelige tekstdatasæt efter linjer, der matcher et regulært udtryk . Dens navn stammer fra den ed kommando g / re / p ( g lobally søge efter et r egular e XPRESSION og p riv matchende linjer ), der har samme effekt. grepblev oprindeligt udviklet til Unix- operativsystemet, men senere tilgængelig for alle Unix-lignende systemer og nogle andre såsom OS-9 .
Historie
Inden det blev navngivet, var grep et privat værktøj skrevet af Ken Thompson til at søge efter filer efter bestemte mønstre. Doug McIlroy , der ikke var klar over dens eksistens, bad Thompson om at skrive et sådant program. Som svar på, at han ville tænke på et sådant værktøj natten over, rettede Thompson faktisk fejl og foretog forbedringer i cirka en time. Den næste dag præsenterede han programmet for McIlroy, der sagde, at det var præcis, hvad han ville. Thompsons beretning kan forklare troen på, at grep blev skrevet natten over.
Thompson skrev den første version i PDP-11- samlingssprog for at hjælpe Lee E. McMahon med at analysere teksten i Federalist Papers for at bestemme forfatterskab til de enkelte papirer. Den redigerede tekstredigerer (også forfattet af Thompson) havde understøttelse af regulært udtryk, men kunne ikke bruges på en så stor mængde tekst, så Thompson hentede denne kode til et selvstændigt værktøj. Han valgte navnet, fordi kommandoen g/re/p i ed ville udskrive alle linjer, der matchede et bestemt mønster. grepblev først inkluderet i version 4 Unix . Med angivelse af, at det "generelt citeres som det prototypiske softwareværktøj", krediteres McIlroy grepfor "uigenkaldeligt at forankre" Thompsons værktøjsfilosofi i Unix.
Prøvebrug
Følgende eksempel viser output fra grepkommandoen givet forskellige 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 række forskellige grepimplementeringer er tilgængelige i mange operativsystemer og softwareudviklingsmiljøer. Tidlige varianter inkluderet egrepog fgrepintroduceret i version 7 Unix . egrepVarianten " " understøtter en udvidet syntaks for regulært udtryk tilføjet af Alfred Aho efter Ken Thompsons oprindelige implementering af regulært udtryk. " fgrep" -Varianten søger efter en hvilken som helst af en liste over faste strenge ved hjælp af algoritmen Aho – Corasick string matching . Binarier af disse varianter vedvarer i de fleste moderne systemer, der normalt linker til grep; Men ved hjælp af disse binære filer er blevet forældet til fordel for at bruge de -Eog -Fkommandolinjeparametre på grep stedet.
Andre kommandoer indeholder ordet "grep" for at angive, at de er søgeværktøjer, typisk dem, der er afhængige af regulære udtryk. Den pgrepnytte, for eksempel, viser de processer, hvis navne matcher en given regulært udtryk.
I Perl programmeringssprog er grep navnet på den indbyggede funktion, der finder elementer på en liste, der opfylder en bestemt egenskab. Denne funktion af højere orden er typisk navngivet filtereller wherepå andre sprog.
Den pcregrepkommando er en implementering af grepder bruger Perl regulære udtryk syntaks. Lignende funktionalitet kan påberåbes i GNU -versionen af grepmed -Pflaget.
Porte af grep(inden for f.eks. Cygwin og GnuWin32 ) kører også under Microsoft Windows . Nogle versioner af Windows indeholder lignende qgrepeller findstrkommando.
En grepkommando er også en del af ASCII 's MSX-DOS2-værktøjer til MSX-DOS version 2.
De grep , egrep og fgrep kommandoer er også blevet porteret til IBM i operativsystemet.
Softwaren Adobe InDesign har funktioner GREP (siden CS3 -version (2007)), i fanen Find/rediger dialogboksen "GREP", og introduceret med InDesign CS4 i afsnitsformater "GREP -stilarter".
enig
en grep (omtrentlig grep) matcher, selvom teksten kun omtrent passer til søgemønsteret.
Denne følgende påkaldelse finder netmasks i filen myfile , men også ethvert andet ord, der kan udledes af det, givet ikke mere end to substitutioner.
agrep -2 netmasks myfile
Dette eksempel genererer en liste over kampe med de nærmeste, det vil sige dem med færrest substitutioner, der er angivet først. Kommandoflag B betyder bedst :
agrep -B netmasks myfile
Anvendelse som verbum
I december 2003 tilføjede Oxford English Dictionary Online udkast til poster til "grep" som både et substantiv og et verbum.
En almindelig brug af verb er udtrykket "Du kan ikke grep om døde træer" - hvilket betyder, at man lettere kan søge gennem digitale medier ved hjælp af værktøjer som f.eks. grep, End man kunne med en papirkopi (dvs. en lavet af "døde træer", som i denne sammenhæng er en dysfemi for papir). Sammenlign med google .
Se også
- Boyer -Moore strengsøgningsalgoritme
- enig , en omtrentlig streng-matchende kommando
-
find (Windows) , en DOS- og Windows -kommando, der udfører tekstsøgninger, der ligner en simpel
grep -
find (Unix) , en Unix -kommando, der finder filer efter attribut, meget forskellige fra
grep - Liste over Unix -kommandoer
-
vgrep eller "visuel
grep" - ngrep , netværket grep
Referencer
- Noter
- Alain Magloire (august 2000). Grep: Søger efter et mønster . Iuniverse Inc. ISBN 0-595-10039-2.
- Hume, Andrew Grep krige: Det strategiske søgeinitiativ. I Peter Collinson, redaktør, Proceedings of the EUUG Spring 88 Conference , side 237–245, Buntingford, UK, 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 links
- GNU Grep officielle websted
- GNU Grep manual
- - Plan 9 Programmerings Manual, bind 1
- - Inferno Generelle kommandoer Manual
- "hvorfor GNU grep er hurtig" - implementeringsdetaljer fra GNU greps forfatter.
- Command Grep - 25 praktiske eksempler