grep - grep

grep
Grep exempel.png
Exempel på grepkommando
Ursprungliga författare Ken Thompson
Utvecklare AT&T Bell Laboratories
Initial release November 1973 ; 47 år sedan ( 1973-11 )
Operativ system Unix , Unix-liknande , Plan 9 , Inferno , OS-9 , MSX-DOS , IBM i
Plattform Plattformsoberoende
Typ Kommando

grepär ett kommandoradsverktyg för att söka rena textuppsättningar efter rader som matchar ett vanligt uttryck . Dess namn kommer från ed kommandot g / re / p ( g lobally söka efter en r egular e Xpression och p rint matchningslinjer ), som har samma effekt. greputvecklades ursprungligen för Unix- operativsystemet, men senare tillgängligt för alla Unix-liknande system och några andra som OS-9 .

Historia

Innan det namngavs var grep ett privat verktyg som Ken Thompson skrev för att söka efter filer efter vissa mönster. Doug McIlroy , omedveten om dess existens, bad Thompson att skriva ett sådant program. Som svar på att han skulle tänka på ett sådant verktyg över en natt korrigerade Thompson faktiskt buggar och gjorde förbättringar i ungefär en timme. Dagen efter presenterade han programmet för McIlroy, som sa att det var precis vad han ville. Thompsons berättelse kan förklara tron ​​att grep skrevs över en natt.

Thompson skrev den första versionen på PDP-11- monteringsspråk för att hjälpa Lee E. McMahon att analysera texten i Federalist Papers för att bestämma författarskapet till de enskilda tidningarna. Den redigerade textredigeraren (även författad av Thompson) hade stöd för vanligt uttryck men kunde inte användas på en så stor mängd text, så Thompson tog ut den koden till ett fristående verktyg. Han valde namnet eftersom kommandot g/re/p i ed skulle skriva ut alla rader som matchade ett angivet mönster. grepingick först i version 4 Unix . Med uttalande om att det är "allmänt citerat som det prototypiska mjukvaruverktyget", krediteras McIlroy för att grep"oåterkalleligt förankra" Thompsons verktygsfilosofi i Unix.

Provanvändning

Följande exempel visar utmatningen av grepkommandot med olika argument

$ 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

Implementeringar

En mängd olika grepimplementeringar finns tillgängliga i många operativsystem och mjukvaruutvecklingsmiljöer. Tidiga varianter inkluderade egrepoch fgrepintroducerades i version 7 Unix . " egrep" -Varianten stöder en utökad syntax för reguljärt uttryck som tillagts av Alfred Aho efter Ken Thompsons ursprungliga implementering av reguljära uttryck. " fgrep" -Varianten söker efter någon av en lista med fasta strängar med hjälp av Aho – Corasick strängmatchningsalgoritm . Binärer av dessa varianter kvarstår i de flesta moderna system, vanligtvis länkar till grep; Användningen av dessa binärer har dock avvecklats till förmån för att använda -Eoch och -Fkommandoradsväxlarna grep istället.

Andra kommandon innehåller ordet "grep" för att indikera att de är sökverktyg, vanligtvis sådana som är beroende av regelbundna uttrycksmatchningar. Den pgrepnytta, till exempel, visar processer vars namn matchar ett givet reguljärt uttryck.

I programmeringsspråket Perl är grep namnet på den inbyggda funktionen som hittar element i en lista som uppfyller en viss egenskap. Denna högre ordningsfunktion heter vanligtvis filtereller wherepå andra språk.

Det pcregrepkommando är en implementering av grepsom använder Perl reguljära uttryck syntax. Liknande funktionalitet kan åberopas i GNU -versionen av grepmed -Pflaggan.

Portar av grep(inom Cygwin och GnuWin32 , till exempel) körs också under Microsoft Windows . Vissa versioner av Windows har liknande qgrepeller findstrkommando.

Ett grepkommando är också en del av ASCII : s MSX-DOS2-verktyg för MSX-DOS version 2.

De grep , egrep och fgrep kommandon har också portas till IBM i operativsystemet.

Mjukvaran Adobe InDesign har funktioner GREP (sedan CS3 version (2007)), i Sök / dialogrutan "GREP" -fliken, och introducerades med InDesign CS4 i styckeformat "GREP stilar".

instämmer

en grep (ungefärlig grep) matchar även när texten bara ungefär passar sökmönstret.

Detta följande anrop hittar nätmasker i filen myfile , men också alla andra ord som kan härledas från det, med högst två substitutioner.

agrep -2 netmasks myfile

Detta exempel genererar en lista över matchningar med de närmaste, det vill säga de med minst antal, substitutioner listade först. Kommandoflaggan B betyder bäst :

agrep -B netmasks myfile

Användning som verb

I december 2003 lade Oxford English Dictionary Online till utkast till "grep" som både substantiv och verb.

En vanlig verbanvändning är frasen "Du kan inte grep döda träd" - vilket betyder att man lättare kan söka igenom digitala medier med hjälp av verktyg som, t.ex. grep, med en papperskopia (dvs. i detta sammanhang är en dysfemi för papper). Jämför med google .

Se även

Referenser

Anteckningar
  • Alain Magloire (augusti 2000). Grep: Söker efter ett mönster . Iuniverse Inc. ISBN 0-595-10039-2.
  • Hume, Andrew Grep krig: Det strategiska sökinitiativet. I Peter Collinson, redaktör, Proceedings of the EUUG Spring 88 Conference , sidorna 237–245, Buntingford, Storbritannien, 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.

externa länkar