<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Grep</id>
	<title>Grep - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Grep"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Grep&amp;action=history"/>
	<updated>2026-05-25T15:57:08Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Grep&amp;diff=126305&amp;oldid=prev</id>
		<title>imported&gt;Siegbert v2: Archivversion für tote Links</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Grep&amp;diff=126305&amp;oldid=prev"/>
		<updated>2026-02-22T06:08:24Z</updated>

		<summary type="html">&lt;p&gt;Archivversion für tote Links&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:grep}}&lt;br /&gt;
[[Datei:Grep example.png|mini|rechts|GNU grep]]&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;grep&amp;#039;&amp;#039;&amp;#039; [{{IPA|gɹɛp}}] ist ein Programm, das unter den [[Betriebssystem]]en [[Unix]] und [[Unix-Derivat]]en der Suche und Filterung definierter [[Zeichenkette]]n aus [[Datei]]en oder [[Datenstrom|Datenströmen]] dient. Es wurde ursprünglich von [[Ken Thompson]] entwickelt,&amp;lt;ref&amp;gt;[[Brian Kernighan]]: [http://beautifulcode.oreillynet.com/ &amp;#039;&amp;#039;A Regular Expression Matcher&amp;#039;&amp;#039;.]&amp;lt;/ref&amp;gt; erschien erstmals als Teil von &amp;#039;&amp;#039;Version 6 AT&amp;amp;T UNIX&amp;#039;&amp;#039; und ist [[Portable Operating System Interface|POSIX.1]]-konform.&lt;br /&gt;
&lt;br /&gt;
Der Begriff &amp;#039;&amp;#039;grep&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;lobal/&amp;#039;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;#039;egular &amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;xpression/&amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;rint&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;[http://www.gnu.org/software/grep/manual/html_node/Usage.html grep Manual] Punkt 16&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;J. Plate: {{Webarchiv|url=http://www.netzmafia.de/skripten/unix/unix5.html |wayback=20100103063941 |text=unix5}} FH München&amp;lt;/ref&amp;gt; oder auch &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;lobal search for a &amp;#039;&amp;#039;&amp;#039;r&amp;#039;&amp;#039;&amp;#039;egular &amp;#039;&amp;#039;&amp;#039;e&amp;#039;&amp;#039;&amp;#039;xpression and &amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;rint out matched lines&amp;#039;&amp;#039;,&amp;lt;ref&amp;gt;{{Internetquelle |url=http://de.linwiki.org/wiki/Linuxfibel_-_Unix-Werkzeuge_-_Grep |titel=Linuxfibel - Unix-Werkzeuge - Grep |werk=linwiki.org |sprache=en |archiv-url=https://web.archive.org/web/20161023060453/http://de.linwiki.org/wiki/Linuxfibel_-_Unix-Werkzeuge_-_Grep |archiv-datum=2016-10-23 |abruf=2026-02-22}}&amp;lt;/ref&amp;gt; also etwa „globale Suche nach einem [[Regulärer Ausdruck|regulären Ausdruck]] und Ausgabe übereinstimmender Zeilen“. Historisch entwickelte sich der Name aus dem Kommando g/re/p des Unix-Editors QED, dem Vorgänger von [[Ed (Texteditor)|ed]].&amp;lt;ref&amp;gt;Félix López, Víctor Romero: &amp;#039;&amp;#039;Mastering Python Regular Expressions.&amp;#039;&amp;#039; Packt Publishing 2014, ISBN 978-1-78328-315-6. S. 7.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |autor=Computerphile |url=https://www.youtube.com/watch?v=NTfOnGZUZDk |titel=Where GREP Came From - Computerphile |werk= |hrsg= |datum=2018-07-06 |abruf=2018-07-08 |sprache=en |kommentar=Interview mit [[Brian W. Kernighan]]}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es gibt verschiedene andere Programme mit ähnlichen Funktionen, beispielsweise &amp;#039;&amp;#039;agrep&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Tre-agrep&amp;#039;&amp;#039;, die auch eine [[Fuzzy-Suche|unscharfe]] [[String-Matching-Algorithmus|Suche nach Textstrings]] ermöglichen.&lt;br /&gt;
&lt;br /&gt;
Fachspezifisch hat sich „grep“ [[Englische Sprache|im Englischen]] auch als [[Verb]] für „&amp;#039;&amp;#039;etwas&amp;#039;&amp;#039; suchen“ („{{lang|en|to search for something}}“) etabliert, siehe [[Jargon File]].&lt;br /&gt;
&lt;br /&gt;
== Anwendung ==&lt;br /&gt;
In der Kommandozeile wird &amp;#039;&amp;#039;grep&amp;#039;&amp;#039; meist zur Suche in Dateien eingesetzt. Der Aufruf hat die Form:&lt;br /&gt;
   grep [optionen] Suchmuster [Datei(-liste)]&lt;br /&gt;
&lt;br /&gt;
Der Befehl kann auch in [[Unix-Shell|Shell-Skripten]], beispielsweise in [[Pipe (Informatik)|Pipes]], eingesetzt werden.&lt;br /&gt;
&lt;br /&gt;
Durch [[Kommandozeilenparameter|Kommandozeilenschalter]] kann die Arbeitsweise von &amp;#039;&amp;#039;&amp;#039;grep&amp;#039;&amp;#039;&amp;#039; geändert werden.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Beispiele für optionale Arbeitsweisen von grep&lt;br /&gt;
!Schalter&lt;br /&gt;
!Wirkung&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-v&amp;lt;/code&amp;gt;&lt;br /&gt;
|Alle Zeilen heraussuchen, die das angegebene Textmuster nicht enthalten.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-w&amp;lt;/code&amp;gt;&lt;br /&gt;
|Nur Zeilen heraussuchen, in denen das Suchmuster als ganzes Wort enthalten ist.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-n&amp;lt;/code&amp;gt;&lt;br /&gt;
|Die Zeilennummern, in denen der Text enthalten ist, ausgeben.&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;-H&amp;lt;/code&amp;gt;&lt;br /&gt;
|Den Dateinamen aller Dateien ausgeben, die den angegebenen Text enthalten.&lt;br /&gt;
|}&lt;br /&gt;
Die [[GNU-Projekt|GNU]]- und [[Berkeley Software Distribution|BSD]]-Varianten bieten darüber hinaus mit dem Schalter &amp;#039;&amp;#039;-o&amp;#039;&amp;#039; (bzw. &amp;#039;&amp;#039;--only-matching&amp;#039;&amp;#039;) die Möglichkeit, nicht die komplette Zeile auszugeben, in der ein Ausdruck vorkommt, sondern lediglich alle Vorkommen des Ausdrucks selbst.&lt;br /&gt;
&lt;br /&gt;
Das Beispiel extrahiert eine Zahl, nämlich die User-ID eines Accounts namens „rudi“ aus der Datei „/etc/passwd“.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grep -E -o &amp;quot;^rudi:x:[0-9]+&amp;quot; /etc/passwd | grep -o &amp;quot;[0-9]*$&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Einsatzgebiete ==&lt;br /&gt;
&amp;#039;&amp;#039;grep&amp;#039;&amp;#039; wird in erster Linie dann eingesetzt, wenn Dateien durchsucht werden müssen, zum Beispiel die Quelldateien eines [[Computerprogramm]]s oder [[Logdatei]]en. In Zusammenarbeit mit [[find]] kann ein ganzer Dateibaum gelesen werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ find /home/benutzername -exec grep -H &amp;quot;Passwort&amp;quot; {} \;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses Kommando durchsucht alle Dateien des Quellverzeichnisses des Benutzers &amp;#039;&amp;#039;benutzername&amp;#039;&amp;#039; nach der Zeichenkette &amp;#039;&amp;#039;Passwort&amp;#039;&amp;#039; und zeigt die gefundenen Zeilen zusammen mit dem Dateinamen an, wobei die Anzeige des Dateinamens durch die Option -H ausgelöst wird.&lt;br /&gt;
&lt;br /&gt;
Manche grep-Versionen ermöglichen eine kürzere Formulierung mit Hilfe der Option -r:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ grep -r &amp;quot;Passwort&amp;quot; /home/benutzername&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein zweites Einsatzgebiet ist die Verwendung als Zeilen-Filter innerhalb einer Kette von Befehlen, z.&amp;amp;nbsp;B.:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ tail -1000 /var/log/mail | grep &amp;quot;Mailadresse&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Varianten ==&lt;br /&gt;
=== agrep ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;agrep&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Approximate GREP&amp;#039;&amp;#039;&amp;#039;) 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 &amp;#039;&amp;#039;unscharfe&amp;#039;&amp;#039; (&amp;#039;&amp;#039;[[Fuzzy-Suche|fuzzy]]&amp;#039;&amp;#039;) Textstringsuche.&lt;br /&gt;
&lt;br /&gt;
agrep wurde in den Jahren 1988–1991 von Udi Manber&amp;lt;ref&amp;gt;&amp;#039;&amp;#039;[[:en:Udi Manber|Udi Manber]]&amp;#039;&amp;#039; in der englischsprachigen Wikipedia&amp;lt;/ref&amp;gt; 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ärer Ausdruck|regulären Ausdruck]] der Benutzereingabe (Suchstring) am besten angepasst ist und die schnellste Suche ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Um 1996 wurde es erstmals nach [[OS/2]] und [[Disk Operating System|DOS]], später nach [[Windows]] portiert, und nach weiteren Verbesserungen wieder nach Linux.&amp;lt;ref&amp;gt;[https://github.com/Wikinaut/agrep agrep Source code aller Versionen]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Während agrep früher nur unter einer eingeschränkten Lizenz benutzt werden konnte, die im Konflikt mit Absatz 1 der [[Open Source|Open-Source]]-Definition stand, erreichten es die Entwickler, agrep am 18.&amp;amp;nbsp;September 2014 unter die freie [[ISC-Lizenz]] zu stellen.&amp;lt;ref&amp;gt;Details und weitere Informationen im englischsprachigen [[:en:Agrep|agrep]]-Artikel&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Tre-agrep ====&lt;br /&gt;
Mit Tre-agrep steht eine Neuimplementierung von agrep zur Verfügung, die unter der liberaleren BSD-Lizenz steht.&amp;lt;ref name=&amp;quot;Agrep_01&amp;quot;&amp;gt;Charly Kühnast: [http://www.linux-magazin.de/Ausgaben/2012/10/Einfuehrung2 &amp;#039;&amp;#039;Nimm zwei: Aus dem Alltag eines Sysadmin: Biabam und Tre-agrep&amp;#039;&amp;#039;.] linux-magazin.de, Ausgabe 10/2012, S. 61&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Internetquelle |url=http://laurikari.net/tre/ |titel=Informationen zu Tre-agrep |werk=laurikari.net |sprache=en |archiv-url=https://web.archive.org/web/20250715005547/https://laurikari.net/tre/ |archiv-datum=2025-07-15 |abruf=2026-02-22}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== egrep ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;egrep (Extended grep)&amp;#039;&amp;#039;&amp;#039; ist zur einfacheren Suche mit erweiterten [[Regulärer Ausdruck|regulären Ausdrücken]] geeignet. So haben die Zeichen &amp;lt;code style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;? + { } | ( )&amp;lt;/code&amp;gt; bei egrep eine besondere Bedeutung für den Ausdruck und müssen mit einem umgekehrten Schrägstrich (engl.: &amp;#039;&amp;#039;backslash&amp;#039;&amp;#039;) geschützt werden, wenn sie als Text gefunden werden sollen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;grep -E&amp;lt;/code&amp;gt; leistet alles, was egrep geleistet hat, und der Aufruf &amp;lt;code&amp;gt;egrep&amp;lt;/code&amp;gt; gilt inzwischen als veraltet; er sollte in Skripten vermieden werden, da &amp;lt;code&amp;gt;egrep&amp;lt;/code&amp;gt; oft nur noch ein indirekter Aufruf von &amp;lt;code&amp;gt;grep -E&amp;lt;/code&amp;gt; ist und möglicherweise in Zukunft nicht mehr unterstützt wird.&lt;br /&gt;
&lt;br /&gt;
=== fgrep ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;fgrep&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;f&amp;#039;&amp;#039;&amp;amp;nbsp;für &amp;#039;&amp;#039;fixed-strings&amp;#039;&amp;#039;) 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 &amp;#039;&amp;#039;[[Aho-Corasick-Algorithmus]]&amp;#039;&amp;#039;, der auch der Originalversion diente. Der Aufruf &amp;lt;code&amp;gt;fgrep&amp;lt;/code&amp;gt; sollte in Skripten vermieden werden, da &amp;#039;&amp;#039;fgrep&amp;#039;&amp;#039; oft nur noch aus Gründen der Abwärtskompatibilität existiert und dann meist auch nur ein indirekter, also umweghafter Aufruf von &amp;lt;code&amp;gt;grep -F&amp;lt;/code&amp;gt; ist.&lt;br /&gt;
&lt;br /&gt;
== Microsoft Windows ==&lt;br /&gt;
Wie von vielen Programmen gibt es auch Portierungen von grep auf die [[Windows]]-Plattform. Als eingebauten Befehl kennt Windows die Befehle &amp;#039;&amp;#039;find&amp;#039;&amp;#039; und &amp;#039;&amp;#039;findstr&amp;#039;&amp;#039;, die eine ähnliche Funktion wie grep erbringen. In den [[Resource Kit]] 2003 Tools ist &amp;#039;&amp;#039;QGREP.EXE&amp;#039;&amp;#039; enthalten.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.microsoft.com/en-us/download/details.aspx?id=17657 |titel=Windows Server 2003 Resource Kit Tools |titelerg=[[Windows Server 2003]] (auch für [[Windows&amp;amp;nbsp;XP]]) |werk=microsoft.com |datum=2003-04-28 |sprache=en |abruf=2026-02-22}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der entsprechende [[PowerShell]]-Befehl lautet &amp;#039;&amp;#039;Select-String&amp;#039;&amp;#039;.&amp;lt;ref&amp;gt;{{Internetquelle |autor=sdwheeler |url=https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/select-string?view=powershell-6 |titel=Select-String (Microsoft.PowerShell.Utility) |werk=docs.microsoft.com |hrsg= |datum=2018-07-06 |abruf=2018-07-07 |sprache=en-us}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Cut (Unix)]]&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wiktionary|grep|lang=en}}&lt;br /&gt;
* {{man||grep|posix|search a file for a pattern}}&lt;br /&gt;
* [https://www.gnu.org/software/grep/ GNU grep]&lt;br /&gt;
* [https://www.tgries.de/agrep/ Homepage von AGREP]&lt;br /&gt;
* {{Webarchiv |url=http://webglimpse.net |wayback=20190701000000 |text=GLIMPSE, WebGlimpse und AGREP}}&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=7692411-7}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Unix-Betriebssystemkomponente]]&lt;br /&gt;
[[Kategorie:Unix-Software]]&lt;br /&gt;
[[Kategorie:GNU-Paket]]&lt;br /&gt;
[[Kategorie:Abkürzung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Siegbert v2</name></author>
	</entry>
</feed>