Der Befehl „grep“ steht für 'globaler regulärer Ausdruck drucken' . Der Befehl grep filtert den Inhalt einer Datei, was unsere Suche vereinfacht.
Es handelt sich um ein Befehlszeilendienstprogramm zum Durchsuchen von Klartext-Datengruppen nach Zeilen, die mit einem regulären Ausdruck identisch sind. Der Name 'Griff' kommt vom Befehl, also ed, der den gleichen Effekt hat. Ursprünglich wurde grep für das Unix-Betriebssystem entwickelt, wurde aber später für jedes Unix-ähnliche System und einige andere wie OS 9 verfügbar.
Der grep-Filter findet eine Datei für ein bestimmtes Zeichenmuster und zeigt jede Zeile an, die dieses Muster enthält. Zeichen sollten in Anführungszeichen gesetzt werden, wenn sie im Musterparameter vorkommen und eine besondere Bedeutung für die Shell haben. Normalerweise müssen wir das gesamte Muster in ein Anführungszeichen setzen, wenn der Musterparameter keine gemeinsame Zeichenfolge ist.
In einem Ausdruck wie [a-z] beschreibt das Minuszeichen (-) cml einen Bereich basierend auf der aktuellen Sortierreihenfolge. Eine Sortierreihenfolge kann äquivalente Klassen in Zeichenbereichen zur Verwendung angeben. Der grep-Befehl geht von stdin aus, wenn keine Dateien erwähnt werden.
Das Muster wird als regulärer Ausdruck bezeichnet, der in der Datei gefunden wird. Das Muster besteht aus eingeschränkten regulären Ausdrücken im Format des Befehls egrep oder ed. Der grep-Befehl wendet einen soliden nichtdeterministischen Algorithmus an. Es ist praktisch, wenn wir große Protokolldateien filtern müssen.
Kurze Geschichte von grep
Bevor es benannt wurde, war grep ein vertrauliches Dienstprogramm, das von spezifiziert wurde Ken Thompson um Dateien für mehrere Muster zu finden. Unbekannt von seiner Existenz, Doug Mcllroy bat Thompson, eine solche Funktion zu spezifizieren. Er antwortete, dass ihm über Nacht ein solcher Nutzen einfallen würde. Thompson nahm etwa eine Stunde lang Verbesserungen vor und korrigierte Fehler in seinem Programm namens 'S' (oder suchen). Am nächsten Tag stellte er Mcllroy die Funktion vor, die sagte, es sei das Gleiche, was er wollte. Der Bericht von Thompson beschreibt möglicherweise die Annahme, dass der grep-Befehl über Nacht spezifiziert wurde.
Thompson spezifizierte die ursprüngliche Version in der Assemblersprache PDP-11 zur Unterstützung Lee E. McMohan Überprüfen des Textes der Federalist Papers, um die Urheberschaft des einzelnen Artikels zu bestimmen. Der ed-Texteditor unterstützte reguläre Ausdrücke, konnte aber nicht für so große Texte verwendet werden; Thompson hat diesen Code in ein eigenständiges Tool kopiert. Er wählte den Namen aufgrund von ed; Der Befehl grep würde jede Zeile nach dem beschriebenen Muster drucken. Zuerst wurde grep in Version 4 von Unix hinzugefügt, was dies besagt „Es wird allgemein als das prototypische Softwaretool bezeichnet“ , Mcllroy genehmigte grep mit dem „unwiderruflich verwurzelt“ Tools-Philosophie von Thompson in Unix.
Implementierungen von grep
In verschiedenen Softwareentwicklungsumgebungen und Betriebssystemen gibt es eine Reihe von grep-Implementierungen. Zu den frühen Versionen gehörten fgrep und egrep, die in der 7er-Version von Unix eingeführt wurden. Die Egrep-Version unterstützt die Syntax für einen erweiterten regulären Ausdruck, der von Alfred Aho nach der ursprünglichen Implementierung des regulären Ausdrucks von Ken Thompson eingefügt wurde. Die fgrep-Version findet jede feste String-Liste mit dem Aho-Corasick-String-Matching-Algorithmus . Diese Versionsbinärdateien sind in modernen Systemen verfügbar und stellen eine Verbindung zu grep her oder rufen grep als Shell-Skript mit dem richtigen hinzugefügten Flag auf, während sie im Allgemeinen auf POSIX-Systemen bereitgestellt werden.
Zu den weiteren Befehlen gehören die 'Griff' Wort, um darzustellen, dass sie Werkzeuge finden, üblicherweise solche, die auf Übereinstimmungen mit regulären Ausdrücken angewiesen sind. Zum Beispiel das Dienstprogramm, d. h. 'pgrep' , zeigt die Prozesse an, deren Titel mit dem bereitgestellten regulären Ausdruck übereinstimmen.
- Grep ist der Titel der integrierten Funktion, die nach den Elementen in einer Liste sucht, die eine bestimmte Eigenschaft in der Liste haben Perl Programmiersprache.
- Typischerweise wird diese Funktion höherer Ordnung aufgerufen 'Filter' oder 'Wo' in einer anderen Sprache.
- Der Befehl, d. h. pcregrep ist eine grep-Implementierung, die die Syntax für reguläre Perl-Ausdrücke verwendet. Dieselbe Funktionalität kann mit dem Flag -P zur grep GNU-Version hinzugefügt werden.
- Auch grep-Ports (z. B. in GnuWin32 Und Cygwin ) unter Microsoft Windows ausführen. Einige Windows-Versionen bieten denselben Befehl findstr oder qgrep.
- Außerdem ist der grep-Befehl Teil der MSX-DOS2-Tools von ASCII für die 2-Version von MSX-DOS.
- Die Befehle fgrep, egrep und grep wurden an das Betriebssystem IBM i ausgeliefert.
Die Adobe InDesign-Software verfügt über GREP-Funktionen (seit CS3-Edition) im Dialogfeld „Registerkarte „GREP“ ändern/suchen“ und wird mit CS4 im angegeben „GREP-Stile“ Absatzstile.
Wie installiere ich grep unter Linux?
Grep ist in fast jeder Linux-Distribution vorinstalliert. Falls es jedoch in unserem System fehlt, können wir es mit dem folgenden Befehl im Terminalfenster installieren:
$ sudo apt-get install grep
grep mit Pipe
Der Befehl „grep“ wird im Allgemeinen mit Pipe verwendet (|) .
Syntax:
command | grep
Beispiel:
cat marks.txt | grep 9
Schauen Sie sich den obigen Schnappschuss an. Der Befehl grep filtert alle Daten, die „9“ enthalten.
grep ohne Pipe
Es kann auch ohne Rohr verwendet werden.
Syntax:
grep
Beispiel:
grep 9 marks.txt
Schauen Sie sich den obigen Schnappschuss an. Der Befehl grep führt die gleiche Arbeit wie im vorherigen Beispiel aus, jedoch ohne Pipe.
grep-Optionen
Syntax:
grep -v
Beispiel:
grep -v 9 marks.txt
Schauen Sie sich den obigen Schnappschuss an, Befehl 'grep -v 9 mark.txt' Zeigt Zeilen an, die unser Suchwort „9“ nicht enthalten.
Syntax:
grep -i
Beispiel:
grep -i red exm.txt
Schauen Sie sich den obigen Schnappschuss an, Befehl 'grep -i red exm.txt' Zeigt alle Zeilen an, die „rot“ enthalten, egal ob in Groß- oder Kleinschreibung.
grep -Ein Befehl wird verwendet, um die anzuzeigen Zeile nach dem Ergebnis .
Der Befehl grep -B wird zum Anzeigen verwendet Zeile vor dem Ergebnis .
Java-Collections-Framework
Der Befehl grep -C wird zum Anzeigen verwendet Zeile nach und Zeile davor das Ergebnis.
Mit (A1, A2, A3.....)(B1, B2, B3....)(C1, C2, C3....) können Sie beliebig viele Zeilen anzeigen.
Syntax:
grep -A grep -B grep -C
Beispiel:
grep -A1 yellow exm.txt grep -B1 yellow exm.txt grep -C1 yellow exm.txt
Schauen Sie sich den obigen Schnappschuss an, Befehl 'grep -A1 gelb exm.txt' Zeigt die gesuchte Zeile mit der nächstfolgenden Zeile und dem Befehl an 'grep -B1 gelb exm.txt' Zeigt die gesuchte Zeile mit einer vorhergehenden Zeile und einem Befehl an 'grep -C1 gelb exm.txt' Zeigt die gesuchte Zeile mit einer vorhergehenden und einer nachfolgenden Zeile an.