Teremtő | Ken Thompson |
---|---|
Az első verzió | 1974 |
Operációs rendszer | Unix és Unix típus |
típus | UNIX segédprogram ( d ) |
grep egy parancssoros húr kereső program , eredetileg a UNIX által Ken Thompson , majd fokozza a Aho-Corasick algoritmus .
A grep sokféle megvalósítást tartalmaz különböző rendszereken , főleg az összes UNIX-szerű rendszerben. Az egyik legnépszerűbb megvalósítás a GNU grep.
Történelmileg a név az UNIX-en elérhető ed szövegszerkesztő parancsok egyikéből származik , amelynek szintaxisa:
:g/re/pEz a parancs azt jelenti: "keresés g verall egyezik a reguláris kifejezéssel (angolul r egular e xpression ) és nyomtatási ( p rint ) sorokkal, amelyeknek megfelel". Alapértelmezés szerint a grep pontosan úgy viselkedik, mint ez a parancs. A viselkedés megváltoztatásához azonban számos parancssori opció létezik .
A grep szokásos viselkedése, hogy a reguláris kifejezést argumentumként veszi fel, a standard bemenetről vagy a fájlok listájáról olvassa fel az adatokat , és írjon olyan sorokat, amelyek tartalmazzák a reguláris kifejezés és a standard kimenet egyezését.
Például a grep lehetővé teszi a Durand nevet tartalmazó sorok keresését egy telefonos kapcsolattartó fájlban:
$ grep Durand ListeNuméros.txtcsak a Durandot tartalmazó sorokat adja vissza :
Guénolé Durand, 0723237694 Bernard Durand, 0966324355A grep egy olyan szűrő , amely lehetővé teszi más parancsokkal való összekapcsolását csővezeték formájában .
Teljesítménye és egyszerű kezelhetősége alkalmassá teszi a húrok hatékony keresésére egy összetett fájlfában. Például a program forráskódjában található függvény nevének vagy a konfigurációs fájlokban található karakterláncok összes előfordulásának megkeresésére szolgál . Annak ellenére, hogy sok programban hasonló funkciók vannak, például az Emacs vagy a vi , sok felhasználó inkább közvetlenül használja a grep-et, még akkor is, ha ezeket a programokat használja.
A grep parancs a karakterek bizonyos aspektusaira korlátozódik. Például nem teszi lehetővé az UTF-16 kódolású fájlokban történő keresést. Keresésre azonban akkor van lehetőség, ha a fájlt korábban átalakították UTF-8 formátumra. Az UTF-8 támogatása azonban csak akkor lehetséges, ha az egyes karaktereket bájtsorozatnak tekintjük.
A grep számos származéka létezik. Közöttük :
Vegye figyelembe, hogy grep egrep fgrepés rgrepa Unix egyes verzióin több különálló bináris fájlban terjesztették, ezért ezek továbbra is gyakran elérhetők. De a valóságban manapság pontosan ugyanazok a hatásai vannak, mint a különféle lehetőségeknek grep.
Ezeknek a grep változatoknak a többségét számos operációs rendszerbe hordozták. Ezt nevezzük a grep modern megvalósításának.
Sok más parancs tartalmazza a "grep" szót. Például a pgrep segédprogram megjeleníti azon folyamatok számát, amelyek neve megegyezik a reguláris kifejezéssel.
A GNU grep az UNIX grep parancs végrehajtása a GNU Projekt által, amelyet Richard Stallman kezdett el az 1980-as években. Ez szabad szoftver feltételei szerint terjeszthető a GNU General Public License .
A grep parancs eredetileg írt UNIX által Ken Thompson . A GNU Projekt részeként Mike Haerkal az 1980-as évek vége előtt megvalósítja a grep-et az ingyenes szoftverekben.
A GNU projekt implementációs grepjét ma már széles körben használják a Linux , a FreeBSD , de a Mac OS X rendszerek is .
Mint egy betűszó , „grep” egy kiejthető szót, a francia és angol nyelven. Az angolul beszélő grep felhasználók gyakran használják a nevét igeként, ami azt jelenti, hogy "valamit keresni egy fájlban" , ahogy az a grep segédprogrammal történne. Ezután a közvetlen objektum kijelöli azokat a fájlokat, amelyekben keresni lehet: „ Kibo megnevezte Usenet spoolját . (Ami azt jelenti: "Kibo a Usenet spoolban kereste a nevét ."). Francia nyelven a szót ritkábban használják igeként az első csoportból: "greppe les logs, hogy megnézze, a szerver megkapta-e a kérését." "
Kiterjesztéssel a "grep" szó magának a reguláris kifejezésnek a szinonimájává is vált. Sok szerkesztő vagy szövegszerkesztő manapság kínál keresési funkciókat reguláris kifejezések használatával, amelyeket gyakran "grep tool" -nak vagy "grep mode" -nak neveznek, amelyekben grep mintákat lehet megadni. Ez a pontatlanság zavaró, különösen nem UNIX környezetben.
A Windows findstr parancs tulajdonképpen a QGrep, egy GREP, amely Windows-hoz használható. Támogatja a reguláris kifejezéseket, de szintaxisa kissé eltér a grepétől.
Ahhoz, hogy ugyanaz a grep legyen a Windows alatt, telepítenie kell a cygwint vagy egyszerűbben a GnuWin32 projekt grepjét . Megfelelő verzió megtalálható Tim Charron oldalán is (lásd az alábbi külső linkeket).
A parancs tartalmazza a Cisco IOS elvégzi a legalapvetőbb funkcióit grep. Például a show running-config | include 192.168.1.1 az aktív konfiguráció azon sorait jeleníti meg, amelyek tartalmazzák a 192.168.1.1 címet.
A Perl-ben írt ack egy szoftver, amely "a grepnél jobb, a programozók hatékony kutatási eszköze":