grep

grep

grep [gɹɛp] ist ein Programm, das unter den Betriebssystemen Unix und Unix-Derivaten der Suche und Filterung definierter Zeichenketten aus Dateien dient. Es wurde ursprünglich von Ken Thompson entwickelt.[1]

Der Begriff grep steht für global/regular expression/print[2][3] oder auch global search for a regular expression and print out matched lines[4], also etwa „globale Suche nach einem regulären Ausdruck und Ausgabe übereinstimmender Zeilen“. Historisch entwickelte sich der Name aus dem Kommando g/re/p des Unix-Standardeditors ed.

Es existieren zahlreiche Varianten wie egrep, fgrep und agrep, das eine unscharfe Suche nach Textstrings ermöglicht.

Inhaltsverzeichnis

Anwendung

In der Kommandozeile wird grep meist zur Suche in Dateien eingesetzt. Der Aufruf hat die prinzipielle Form :

  grep [optionen] Suchstring [Datei(-liste)]

Der Befehl kann auch in Shell-Skripten, beispielsweise in Pipes, eingesetzt werden.

Durch Kommandozeilenschalter kann die Arbeitsweise von grep geändert werden, so ist es beispielsweise möglich,

  • alle Zeilen herauszusuchen, die den angegebenen Text nicht enthalten,
  • nur Zeilen herauszusuchen, in denen das Suchmuster als ganzes Wort enthalten ist,
  • die Zeilennummern, in denen der Text enthalten ist, auszugeben sowie
  • den Dateinamen aller Dateien auszugeben, die den angegebenen Text enthalten.

Die GNU-Variante bietet darüber hinaus die Möglichkeit, nicht die komplette Zeile auszugeben, in der ein Ausdruck vorkommt, sondern lediglich alle Vorkommen des Ausdrucks selbst.

Einsatzgebiete

grep wird in erster Linie dann eingesetzt, wenn Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines Computerprogramms oder Logdateien. In Zusammenarbeit mit find kann ein ganzer Dateibaum gelesen werden.

$ find /home/benutzername -exec grep -H "Passwort" {} \;

Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers benutzername nach der Zeichenkette Passwort und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird.

Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen.

agrep

agrep (Approximate GREP) ist ein Programm, das nicht aus der Familie der UNIX grep-Programme stammt. Im Gegensatz zu den Programmen der UNIX grep-Familie ermöglicht es eine unscharfe (fuzzy) Textstringsuche.

agrep wurde in den Jahren 1988-1991 von Udi Manber und Sun Wu an der Universität von Arizona entwickelt und bildet den Kern der Suchmaschine GLIMPSE bzw. HARVEST. Das Programm benutzt aus einer Vielzahl von eingebauten Suchalgorithmen denjenigen, der dem regulären Ausdruck der Benutzereingabe (Suchstring) am besten angepasst ist und die schnellste Suche ermöglicht.

Um 1996 wurde es erstmalig nach OS/2 und DOS, später nach Windows portiert.

agrep ist frei für jede Art der Nutzung, darf aber nicht zum Zweck der Erlangung von Profit weitergegeben werden. Damit ist die Lizenz von agrep im Konflikt mit Absatz 1 der Opensource Definition.

egrep

egrep (Extended grep) ist zur einfacheren Suche mit erweiterten regulären Ausdrücken geeignet. So haben die Zeichen ?, +, {, |, (, und ) bei egrep eine besondere Bedeutung für den Ausdruck, und müssen mit einem umgekehrten Schrägstrich (engl.: backslash) geschützt werden, wenn sie als Text gefunden werden sollen.

fgrep

fgrep kann immer anstelle von grep verwendet werden, falls das zu suchende Muster keine regulären Ausdrücke enthält. Alle Sonderzeichen in der Musterzeichenkette verlieren ihre Sonderbedeutung und werden als Bestandteil des Musters verstanden. Fgrep arbeitet dadurch etwas schneller als grep und ist vor allem beim Durchsuchen großer Datenmengen nützlich. Man benutzt hierfür den Aho-Corasick-Algorithmus, der auch der Originalversion diente.

Microsoft Windows

Wie von vielen Programmen, so gibt es auch Portierungen von grep auf die Windows-Plattform. Als eingebauten Befehl kennt Windows die Befehle find und findstr, die eine ähnliche Funktion wie grep erbringen. In den Resource Kit Tools ist QGREP.EXE enthalten. [5][6]

Anmerkungen

  1. Brian Kernighan: A Regular Expression Matcher, http://beautifulcode.oreillynet.com/
  2. grep Manual, Punkt 14, http://www.gnu.org/software/grep/manual/html_node/Usage.html
  3. Prof. J. Plate, FH München, http://www.netzmafia.de/skripten/unix/unix5.html
  4. Linuxfibel, http://de.linwiki.org/wiki/Linuxfibel_-_Unix-Werkzeuge_-_Grep
  5. Resource Kit Tools zu Windows 98, ftp://ftp.microsoft.com/Services/TechNet/samples/ps/win98/reskit/file/
  6. Windows Server 2003 Resource Kit Tools (auch für Windows XP), http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd

Siehe auch

Weitere Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Grep — est un programme en ligne de commande initialement écrit pour Unix utilisant l algorithme d Aho Corasick. Le comportement habituel de grep est de recevoir une expression rationnelle en ligne de commande, de lire les données sur l entrée standard… …   Wikipédia en Français

  • grep — est un programme en ligne de commande de recherche de chaînes de caractères, initialement écrit pour UNIX par Ken Thompson, puis amélioré par l utilisation de l algorithme d Aho Corasick. Il existe de nombreuses implémentations grep sur… …   Wikipédia en Français

  • Grep — is a command line text search utility originally written for Unix. The program s name derives from the Unix ed command, g/re/p which performs a similar operation.cite web|url=http://www.catb.org/ esr/jargon/html/G/grep.html |title=grep… …   Wikipedia

  • Grep — Saltar a navegación, búsqueda grep es una utilidad de la línea de comandos escrita originalmente para ser usada con el sistema operativo Unix. Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una… …   Wikipedia Español

  • grep — es una utilidad de la línea de comandos escrita originalmente para ser usada con el sistema operativo Unix. Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas …   Wikipedia Español

  • Grep — grep  утилита командной строки, которая находит на вводе строки, отвечающие заданному регулярному выражению, и по умолчанию выводит их. Название представляет собой акроним английской фразы «search globally for lines matching the regular… …   Википедия

  • GREP — [gɹɛp] ist ein wichtiges Programm, das unter den Betriebssystemen Unix und Unix Derivaten der Suche und Filterung definierter Zeichenketten in Dateien dient. Es wurde ursprünglich von Ken Thompson entwickelt.[1] Der Begriff steht für… …   Deutsch Wikipedia

  • Grep — [gɹɛp] ist ein wichtiges Programm, das unter den Betriebssystemen Unix und Unix Derivaten der Suche und Filterung definierter Zeichenketten in Dateien dient. Es wurde ursprünglich von Ken Thompson entwickelt.[1] Der Begriff steht für… …   Deutsch Wikipedia

  • grep —   [Abk. für Global Regular Expression, dt. »allgemeiner regulärer Ausdruck«], ein Systemprogramm in Unix, mit dem nach bestimmten Zeichenmustern in Dateien gesucht werden kann. Solche Zeichenmuster können einfache Zeichenketten sein, komplexe… …   Universal-Lexikon

  • grep — GREP, grepuri, s.n. Grepfrut. – Prescurtare din grepfrut. Trimis de gall, 13.09.2007. Sursa: DEX 98  GREP s. v. grepfrut. Trimis de siveco, 13.09.2007. Sursa: Sinonime  grep s. n., pl. grépuri Trimis de siveco, 10.08.2004. Sursa: Dicţionar …   Dicționar Român

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”