Grep

grep ist ein Dienstprogramm der Befehl-Linie, um Klartext-Dateien für Linien zu suchen, die einen regelmäßigen Ausdruck vergleichen. Grep wurde für Unix Betriebssystem ursprünglich entwickelt, aber ist heute für alle Unix ähnlichen Systeme verfügbar. Sein Name kommt aus der Hrsg. befehlen g/re/p (global / regelmäßiger Ausdruck / Druck).

Geschichte

Grep wurde von Ken Thompson als eine eigenständige Anwendung geschaffen, die vom regelmäßigen Ausdruck parser angepasst ist, er hatte für die Hrsg. geschrieben (den er auch geschaffen hat). In der Hrsg. würde der Befehl g/re/p alle Linien drucken, die ein vorher definiertes Muster vergleichen. Das offizielle Entwicklungsdatum von Grep wird als am 3. März 1973 im Handbuch für die Unix Version 4 gegeben.

Gebrauch

Suchdateien von Grep haben als Argumente angegeben, oder, als sie, der Standardeingang des Programms gefehlt haben. Standardmäßig meldet es das Zusammenbringen von Linien auf der Standardproduktion, aber spezifische Verfahrensweisen können mit Befehl-Linienoptionen gewählt werden.

Ein einfaches Beispiel eines allgemeinen Gebrauchs von grep ist das folgende, das die Datei fruitlist.txt für Linien sucht, die den Textschnur-Apfel enthalten:

Grep-Apfel fruitlist.txt

</pre>

Matchs kommen vor, wenn die spezifische Folge von Charakteren zum Beispiel anerkannt wird, werden Linien, die Ananas oder Äpfel enthalten, ohne Rücksicht auf Wortgrenzen gedruckt. Jedoch hat das Suchmuster angegeben, weil ein Argument Fall empfindlich standardmäßig ist, so schließt die Produktion dieses Beispiels Linien nicht ein, die Apfel enthalten (mit einem Kapital A), wenn sie auch Apfel nicht enthalten. Das gegen den Fall unempfindliche Zusammenbringen kommt vor, wenn die Argument-Auswahl-i (ignorieren Fall), gegeben wird.

Vielfache Dateinamen können in der Argument-Liste angegeben werden. Zum Beispiel können alle Dateien, die die Erweiterung.txt in einem gegebenen Verzeichnis haben, gesucht werden, wenn die Schale globbing durch das Verwenden eines Sternchens als ein Teil des Dateinamens unterstützt:

Grep-apple *.txt

</pre>

Regelmäßige Ausdrücke können verwendet werden, um mehr komplizierte Textmuster zu vergleichen. Die folgenden Drucke alle Linien in der Datei, die mit dem Brief a beginnen, der von irgendwelchem Charakter gefolgt ist, der von der Brief-Folge ple gefolgt ist.

grep ^a.ple fruitlist.txt

</pre>

Der Name von grep ist auf einen Gebrauch in der Textaufbereiter-Hrsg. von Unix und den verwandten Programmen zurückzuführen. Bevor grep als ein getrennter Befehl bestanden hat, könnte dieselbe Wirkung in einem Redakteur erreicht worden sein:

Hrsg. fruitlist.txt

g/^a.ple/p

q

</pre>

wo die zweite Linie der der Hrsg. gegebene Befehl ist, um die relevanten Linien zu drucken, und die dritte Linie der Befehl ist, vom Redakteur abzugehen.

Wie die meisten Befehle von Unix akzeptiert grep, dass Optionen in der Form von Argumenten der Befehl-Linie sein Verhalten ändern. Zum Beispiel stellt die Auswahl-Fahne l (untere Umschaltung L) eine Liste der Dateien zur Verfügung, die das Zusammenbringen von Linien haben, eher dann die Linien ausführlich verzeichnend.

Das Auswählen aller Linien, die den Selbststehwortapfel, d. h. umgeben durch den Leerraum oder die Bindestriche enthalten, kann mit der Auswahl-Fahne w vollbracht werden.

Genaues Linienmatch wird mit der Auswahl-Fahne x durchgeführt. Linien, die nur genau enthalten, und allein Apfel werden mit einem Linien-Regexp statt des Wort-Regexp ausgewählt:

Katze fruitlist.txt

Apfel

Äpfel

Ananas

Apfel -

Apfelfrucht

Fruchtapfel

grep-x Apfel fruitlist.txt

Apfel</pre>

Der v (Kleinbuchstabe V) Auswahl kehrt den Sinn des Matchs um und druckt alle Linien, die Apfel, als in diesem Beispiel nicht enthalten.

grep-v Apfel fruitlist.txt

Banane

Birne

Pfirsich

orange

</pre>

Schwankungen

Eine Vielfalt von grep Durchführungen ist in vielen Betriebssystemen und Softwareentwicklungsumgebungen verfügbar. Frühe Varianten haben egrep und fgrep eingeschlossen, der in der Version 7 eingeführt ist, Unix. wendet eine verlängerte regelmäßige Ausdruck-Syntax an, die zu Unix nach der ursprünglichen regelmäßigen Ausdruck-Durchführung von Ken Thompson hinzugefügt wurde. Suchen nach einigen einer Liste von festen Schnuren mit der Aho-Corasick-Schnur, die Algorithmus vergleicht. Diese Varianten dessen dauern auf den meisten modernen grep Durchführungen an, weil Befehl-Linie (und standardisiert als und in POSIX) umschaltet. In solchen vereinigten Durchführungen kann sich grep auch verschieden abhängig vom Namen benehmen, durch den er angerufen wird, fgrep, egrep, und grep erlaubend, Verbindungen zu derselben Programm-Datei zu sein.

Andere Befehle enthalten das Wort "grep", um anzuzeigen, dass sie (gewöhnlich nach regelmäßigen Ausdruck-Matchs) suchen. Das pgrep Dienstprogramm zeigt zum Beispiel die Prozesse, deren Namen einen gegebenen regelmäßigen Ausdruck vergleichen.

In Perl ist grep der Name der eingebauten Funktion, die Elemente in einer Liste findet, die ein bestimmtes Eigentum befriedigen. Diese höherwertige Funktion wird normalerweise Filter auf funktionellen Programmiersprachen genannt.

pcregrep ist eine Durchführung von grep, der Perl regelmäßige Ausdruck-Syntax verwendet. Diese Funktionalität kann in der GNU-Version von grep mit der Fahne angerufen werden.

Häfen von grep (innerhalb von Cygwin und GnuWin32, zum Beispiel) auch geführt unter Windows von Microsoft. Einige Versionen von Windows zeigen den ähnlichen Befehl.

Gebrauch als ein Verb

Im Dezember 2003 hat das englische Wörterbuch von Oxford Online Drafteinträge für "grep" sowohl als ein Substantiv als auch als ein Verb hinzugefügt.

Ein allgemeiner Verbgebrauch ist der Ausdruck "Sie können nicht grep tote Bäume" — das Meinen, dass derjenige leichter Digitalmedien mit Werkzeugen wie grep durchsuchen kann, als man mit einer Hardcopy (d. h., ein gemachter von toten Bäumen, Papier) gekonnt hat. Vergleichen Sie sich mit google.

Siehe auch

  • Schnur von Boyer-Moore sucht Algorithmus
  • Liste von Dienstprogrammen von Unix
  • vgrep, oder "visueller grep"
  • finden Sie

Referenzen

  • Hume, Märchen von Andrew A von zwei greps, Software — Praxis und Erfahrung 18, (11), 1063-1072 (1988).
  • Hume, Kriege von Andrew Grep: Die strategische Suchinitiative. In Peter Collinson, Redakteur, Verhandlungen des EUUG Frühlings 88 Konferenz, Seiten 237-245, Buntingford, das Vereinigte Königreich, 1988. Europäische UNIX Benutzergruppe.

Links


Nicholas I aus Russland / Enrico Berlinguer
Impressum & Datenschutz