Was ist Unterschied zwischen Grep, EGREP und FGREP unter Linux?

Was ist Unterschied zwischen Grep, EGREP und FGREP unter Linux?

Eines der renommierten Suchwerkzeug für UNIX-ähnliche Systeme, mit denen nach irgendetwas gesucht werden kann, ob es sich um eine Datei oder eine Zeile oder mehrere Zeilen in der Datei handelt, ist GREP-Dienstprogramm. Es ist sehr groß in der Funktionalität, die auf die große Anzahl von Optionen zurückzuführen ist, die es unterstützt: Suchen mit dem String-Muster oder Reg-EX-Muster oder Perl-basierter Reg-EX usw.

Unterschied zwischen Grep, EGREP und FGREP unter Linux

Aufgrund seiner unterschiedlichen Funktionen hat es viele Varianten, einschließlich Grep, Egrep (Verlängerter Grep), FGREP (Fix Grep), PGREP (Prozess Grep), RGREP (Rekursiver Grep) usw. Diese Varianten haben jedoch geringfügige Unterschiede zum Original Grep das hat sie beliebt gemacht und von verschiedenen Linux -Programmierern für bestimmte Aufgaben verwendet werden.

Hauptsache, die noch untersucht werden muss, sind die Unterschiede zwischen den drei Hauptvarianten i.e. "Grep", 'Egrep' Und "fGrep" von Grep, das Linux -Benutzern dazu bringt, die eine oder andere Version nach Anforderung auszuwählen.

Einige spezielle Metabarakter von Grep

  1. + - Äquivalent zu einem oder mehreren Vorkommen des vorherigen Charakters.
  2. ? - Dies bezeichnet fast 1 Wiederholung des vorherigen Charakters. Wie: A? Würde übereinstimmen 'A' oder "aa".
  3. ( - Beginn des Wechselausdrucks.
  4. ) - Ende des Wechselausdrucks.
  5. | - Übereinstimmung eines der Ausdrucks getrennt durch '|'. Wie: "(A | b) CDE" würde auch übereinstimmen "Abcde" oder "BBCDE".
  6. - Dieser Meta-Charakter zeigt den Start des Bereichsspezifizierers an. Wie: "A 2" Streichhölzer "Aa" in Datei i.e. a 2 mal.
  7. - Dieser Meta-Charakter zeigt das Ende des Bereichsspezifizierers an.

Unterschiede zwischen Grep, EGREP und FGREP

Einige Hauptunterschiede zwischen Grep, Egrep Und FGREP kann wie folgt hervorgehoben werden. Für diese Beispiele gehen wir davon aus, dass die Datei, in der der Vorgang ausgeführt wird, so ausgeführt wird:

Linux Grep -Befehl

GREP -Befehl

Grep oder Globaler regelmäßiger Ausdruckdruck ist das Hauptsuchprogramm für UNIX-ähnliche Systeme, das nach einer Zeichenfolge in jeder Datei oder Liste der Dateien oder sogar Ausgabe eines beliebigen Befehls suchen kann.

Vorgeschlagene Lesen: 12 Praktische Beispiele für Linux Grep -Befehl

Es benutzt Grundlegende reguläre Ausdrücke Abgesehen von normalen Saiten als Suchmuster. In Basic-Ausdrucksformen (BRE) mögen Meta-Charter: '', '','(', ')' ','|','+' ',''?'' Verlieren Sie ihre Bedeutung und werden als normale Zeichenzeichen behandelt und müssen entkommen werden, wenn sie als Sonderzeichen behandelt werden sollen.

Vorgeschlagene Lesen: 11 Advance 'Grep' -Befehle zu Charakterklassen und Klammerausdrücken

Außerdem verwendet Grep den Boyer-Moore-Algorithmus, um eine schnelle Suche nach einer Zeichenfolge oder einem regulären Ausdruck zu durchsuchen.

$ grep -c 0 '(f | g) ile' check_file $ grep -c 0 '\ (f \ | g \) ile' check_file 
Linux Grep -Befehlsbeispiel

Wie hier, wenn der Befehl ausgeführt wird, ohne zu entkommen '(")' ' Und '|' Dann suchte es nach der vollständigen Zeichenfolge I.e. "(F | g) ile" in der Datei. Aber als die Sonderzeichen entkommen waren, behandelte Grep sie anstatt sie als Teil von String zu behandeln, und suchte nach Wörtern "Datei" oder "Gile" in der Datei.

EGREP -Befehl

Egrep oder Grep -E ist eine andere Version von Grep oder The Extended Grep. Diese Version von Grep ist effizient und schnell, wenn es darum geht, nach einem regulären Ausdrucksmuster zu suchen, da es Metabarakter so behandelt, wie es ist und nicht ersetzt und nicht als Saiten wie in Grep ersetzt, und daher werden Sie von der Last befreit, ihnen zu entkommen als in Grep. Es verwendet ERE oder den erweiterten regulären Ausdruckssatz.

Im Falle von EGREP würde es sie als Sonderzeichen behandeln und sie durch ihre besondere Bedeutung ersetzen, anstatt sie als Teil der String zu behandeln.

$ eGrep -c 0 '(f | g) ile' check_file $ eGrep -c 0 '\ (f \ | g \) ile' check_file 
Linux EGREP -Befehlsbeispiele

Wie hier, Egrep gesucht für "Datei" Zeichenfolge, wenn die Metabarakter nicht entkommen waren, wie es durch die Bedeutung dieser Zeichen bedeuten würde. Aber als diese Charaktere entkommen waren, behandelte Egrep sie als Teil der String und suchte nach einer vollständigen Zeichenfolge "(F | g) ile" in der Datei.

FGREP -Befehl

FGREP oder der Fix Grep oder grep -f ist eine weitere Version von Grep, die schnell sucht, wenn es darum geht, nach der gesamten Zeichenfolge zu suchen, anstatt den regulären Ausdruck, da es die regulären Ausdrücke nicht erkennt, weder irgendwelche Meta-Charaktere. Für die Suche nach einer direkten Zeichenfolge ist dies die Version von Grep, die ausgewählt werden sollte.

FGREP sucht nach vollständig.

$ fGrep -c 0 '(f | g) ile' check_file $ fGrep -c 0 '\ (f \ | g \) ile' check_file 
Linux FGREP -Befehlsbeispiele

Wenn Metabarakter nicht entkommen waren, suchte FGREP nach der vollständigen Zeichenfolge "(F | g) ile" In der Datei und als die Meta-Charaktere entkommen wurden, suchte der Befehl fGrep danach danach "\ (F \ | g \) ile" Alle Zeichen wie in der Datei.

Wir haben bereits einige praktische Beispiele für Grep -Befehl behandelt, die Sie hier lesen können, wenn Sie in Linux mehr aus dem Grep -Befehl herausholen möchten.

Lernen Sie 12 praktische Beispiele für Linux Grep -Befehl

Abschluss

Oben hervorgehoben sind die Unterschiede zwischen "Grep", 'Egrep' Und "fGrep". Abgesehen von der Unterschiede in der Menge der verwendeten Ausdrücke und der Ausführungsgeschwindigkeit bleiben die Parameter von REST -Befehlszeilen für alle drei Versionen von Grep und sogar anstelle von „EGREP“ oder „FGREP“, „GREP -E“ oder „GREP - F ”wird empfohlen, verwendet zu werden.

Wenn Sie weitere Unterschiede zwischen diesen drei Versionen von Grep finden, erwähnen Sie sie in Ihren Kommentaren.