So verwenden Sie den Befehl FGREP, um nach Zeichenfolgen unter Linux zu suchen

So verwenden Sie den Befehl FGREP, um nach Zeichenfolgen unter Linux zu suchen

Brief: In diesem Anfänger-freundlichen Leitfaden werden wir einige praktische Beispiele des FGREP-Befehls diskutieren. Am Ende dieses Handbuchs können Benutzer Textsuchvorgänge mithilfe der Befehlszeilenschnittstelle effizient ausführen.

Die Suchen der Text ist eine der am häufigsten durchgeführten Operationen. Diese einfache Aufgabe wird jedoch schnell zeitaufwändig, wenn Benutzer mit den richtigen Tools nicht vertraut sind. In Linux gibt es verschiedene Textfilterprogramme wie awk, sed, schneiden, usw.

Jedoch unter Linux, FGREP ist das am meisten bevorzugte Dienstprogramm für die einfache Suchen von Text. In diesem Leitfaden werden wir einige Übungsbeispiele dessen diskutieren FGREP Befehl, das im täglichen Leben verwendet werden kann.

Der FGREP Der Befehl in Linux fällt unter die Familie des GREP -Befehls. Es wird jedoch verwendet, um nach dem festen Zeichenfolgenmuster anstelle von regulären Ausdrücken zu suchen. Daher lautet der Name des Befehls FGREP (Fix Grep).

Die Syntax der FGREP Der Befehl ähnelt den anderen Grep -Familienbefehlen:

$ fGrep [Optionen] Muster [Dateien] 

Lassen Sie uns zunächst eine einfache Textdatei mit dem folgenden Inhalt erstellen, um ein Beispiel zu verwenden:

$ cat Input.txt 
Dateiinhalte unter Linux anzeigen

Hier können wir sehen, dass die Textdatei mit dem Beispielinhalt fertig ist. Lassen Sie uns nun einige gemeinsame Beispiele der FGREP Befehl in den nächsten Beispielen.

1. Wie unterscheidet sich FGREP von Grep und EGREP -Befehlen?

Wie der Name schon sagt, die FGREP Der Befehl wird verwendet, um nach den festen Zeichenfolgenmustern zu suchen. Es interpretiert das Muster als feste Zeichenfolge anstelle eines regulären Ausdrucks. Daher führt es die Suchoperation zeitffizient durch.

Um den Unterschied zu verstehen, verwenden wir einen Punkt (.) Charakter mit dem Grep -Befehl.

Dieser einfache reguläre Ausdruck entspricht jedem einzelnen Zeichen mit Ausnahme des Ende der Zeile:

$ grep ha. Eingang.txt 
Suche nach einem einzelnen Charakter mit Grep

In der obigen Ausgabe können wir sehen, dass der Punkt (.) Der Charakter entsprach dem Text Har, Hut, Und hat.

Lassen Sie uns nun dasselbe Muster mit dem verwenden FGREP Befehl und beobachten Sie das Ergebnis:

$ fGrep ha. Eingang.txt 

In der obigen Ausgabe können wir sehen, dass der Befehl das angegebene Muster nicht findet.

Dies geschieht, weil die FGREP Der Befehl erkennt keine regulären Ausdrücke und versucht, nach dem nicht existierenden Muster zu suchen - "Ha.”.

[Sie mögen vielleicht auch: Was ist Unterschied zwischen Grep, EGREP und FGREP unter Linux? ]

2. So suchen Sie nach einem Muster in einer Datei

Beginnen wir mit dem grundlegenden Beispiel, in dem wir in einem nach einem String -Profi suchen Eingang.txt Datei:

$ fGREP -Profis Input.txt 
Suche nach Muster in der Datei

Wie wir sehen können, gelingt es an zwei Stellen das Muster -Matching und ist in roten Farbe hervorgehoben.

3. So setzen Sie die Grep -Ausgangsfarbe für übereinstimmende Muster

Im vorherigen Beispiel haben wir gesehen, dass das übereinstimmende Muster standardmäßig in roter Farbe hervorgehoben ist. Wir können dieses Verhalten jedoch ändern, indem wir dem einen anderen Wert zuweisen Grep_color Umgebungsvariablen.

Lassen Sie uns den Wert zuweisen 32 zum Grep_color Umgebungsvariable zum Hervorhebung des Matched -Musters in grüner Farbe:

$ export grep_color = 32 $ fGrep Profis Input.txt 
Stellen Sie die Grep -Ausgangsfarbe für Matching -Muster ein

Bevor Sie zum nächsten Beispiel wechseln, werden die Grep_color Umgebungsvariable, um das Standardverhalten zu aktivieren:

$ uneingestellter grep_color 

4. So suchen Sie in einer Datei nach mehreren Mustern

Manchmal müssen wir Muster -Matching für mehrere Zeichenfolgen durchführen. In solchen Fällen können wir die Muster aus der Textdatei anstelle des Befehlszeilenarguments bereitstellen.

Erstellen wir eine Textdatei, die mehrere Muster in einer separaten Zeile enthält:

$ Cat Muster.txt Professionalswebsite 

Verwenden wir diese Datei nun mit der -F Option für mehrere Muster -Matching:

$ fGrep -f Muster.TXT -Eingabe.txt 
Suchen Sie nach mehreren Mustern mit FGREP

In der obigen Ausgabe können wir sehen, dass das Muster -Matching für die Saiten erfolgreich ist Profis Und Webseite.

5. So begrenzen Sie die Anzahl der Übereinstimmungen in einer Datei

Standardmäßig die FGREP Der Befehl führt weiterhin das Musterübereinstimmung durch, bis die gesamte Datei verarbeitet wird.

Manchmal müssen wir jedoch die Anzahl der Übereinstimmungen einschränken. In solchen Fällen können wir die verwenden -M Option mit dem Befehl:

$ fGrep -m 1 Profis Eingabe.TXT Tecmint wurde am 15. August 2012 von technisch gestartet Profis und alle 

In diesem Beispiel die FGREP Der Befehl stoppt die Dateiverarbeitung, nachdem das erste Muster übereinstimmt.

6. So drucken Sie den Dateinamen beim Durchsuchen des Musters

Manchmal müssen wir nur den Namen der Dateien finden, in denen ein bestimmtes Muster vorhanden ist. In solchen Fällen können wir die verwenden -l Option der FGREP Befehl:

$ fGREP -L -Profis Input.txt Eingang.txt 

Hier können wir sehen, dass der Befehl nur den Dateinamen anstelle der Zeilen mit den übereinstimmenden Mustern druckt.

7. So drucken Sie den Dateinamen, wenn das Muster -Matching fehlschlägt

Im vorherigen Beispiel haben wir gesehen. Lassen Sie uns nun sehen, wie die Operation umgekehrt durchführt.

Versuchen wir, das nicht existierende Muster in der Datei zu finden und das Ergebnis zu beobachten:

$ fGREP -L Nicht existierender Worteingabe.txt Eingang.txt 

In diesem Beispiel haben wir die verwendet -L Option des Befehls, der den Dateinamen druckt, wenn das Muster -Matching nicht erfolgreich ist.

8. So unterdrücken Sie Fehlermeldungen

Fehlerbehandlung spielt eine entscheidende Rolle beim Schreiben von Shell -Skripten. In einigen nicht kritischen Szenarien können wir jedoch die Fehlermeldungen sicher ignorieren.

In FGREP, Wir können die verwenden -S Option, die Fehler im Zusammenhang mit nicht existierenden oder nicht lesbaren Dateien unterdrückt. Um dieses Verhalten besser zu verstehen, versuchen wir, in der nicht existierenden Datei nach einem Muster zu suchen:

$ fGREP -S-Profis, die nicht existing-file.txt $ echo $? 2 

In der obigen Ausgabe können wir feststellen, dass der Befehl keinen Fehler im Standardfehlerstrom anzeigt. Der Fehler wird jedoch durch den Rückgabewert ungleich Null gemeldet.

Darüber hinaus können wir auch das gleiche Verhalten beobachten, wenn die Datei unleserlich ist. Ändern Sie also zunächst die Dateiberechtigung mit dem Chmod Befehl:

$ chmod 000 Eingabe.txt $ ls -l Eingabe.txt 

Versuchen Sie nun, nach dem Muster zu suchen und das Ergebnis zu beobachten:

$ fGREP -S -Profis Input.txt $ echo $? 
Grep ignorieren Fehlermeldungen

9. Wie man teilweise übereinstimmende Linien ausschließt

In den vorherigen Beispielen haben wir das gesehen FGREP Der Befehl führt eine teilweise Übereinstimmung durch. In einigen Fällen müssen wir jedoch die genaue Übereinstimmung für die gesamte Linie durchführen. In solchen Fällen können wir die verwenden -X Option der FGREP Befehl.

$ fGrep -nx "Die gleiche Seite ist manchmal schwer zu finden."Eingabe.txt 
Suchen Sie die genaue Übereinstimmung in der Datei

In der obigen Ausgabe erfolgt die genaue Linienübereinstimmung unter Zeilennummer 20.

10. So schließen Sie Dateien beim rekursiven Suchen aus

Manchmal müssen wir bestimmte Dateien überspringen, während wir Suchvorgänge ausführen. In solchen Fällen können wir die verwenden --ausschließen Option der FGREP Befehl.

Um dies zu verstehen, erstellen Sie zunächst ein Verzeichnis und kopieren Sie einige Beispieldateien darin:

$ mkdir Dir-1 $ CP-Eingabe.TXT DIR-1/Eingabe.txt $ cp Eingabe.TXT DIR-1/Eingabe.Daten $ CP -Eingabe.TXT DIR-1/Eingabe.md 

Suchen wir nun in allen Dateien der Dateien nach dem Muster Dir-1 Verzeichnis außer dem “.txt" Dateien:

$ fGREP -r -EXCLUDE *.TXT-Profis Dir-1 
Dateien ausschließen, während Sie das Muster suchen

In der obigen Ausgabe können wir feststellen, dass das Musteranpassung an den Dateien mit durchgeführt wurde “.MD ” Und “.Daten" Erweiterungen.

11. So schließen Sie mehrere Dateitypen aus, während Sie rekursiv suchen

Im vorherigen Beispiel haben wir gesehen, wie Dateien mit bestimmten Erweiterungen ausgeschlossen werden können. Der Befehl wird jedoch langwierig, wenn wir Dateien mit mehreren Erweiterungen ausschließen möchten. In solchen Fällen können wir das Ausschlussmuster aus der Datei anstelle des Befehlszeilenarguments angeben:

Erstellen wir also eine Textdatei, die mehrere Ausschlussmuster in einer separaten Zeile enthält:

$ Cat Skip-Pattern.txt *.txt *.Daten 

Verwenden wir diese Datei nun mit der --ausgeschlossen von Möglichkeit:

US.TXT-Profis Dir-1 
Mehrere Dateitypen ausschließen, während Sie das Muster suchen

Hier können wir sehen, dass das Muster -Matching auf den Dateien mit durchgeführt wurde “.MD ” Nur Erweiterungen.

12. So einbeziehen Sie Dateien beim rekursiven Suchen ein

In den vorherigen Beispielen haben wir gesehen. Lassen Sie uns nun sehen, wie die Operation umgekehrt durchführt.

Lassen Sie uns das verwenden --enthalten Option der FGREP Befehl zur Durchführung einer Suche in den Dateien mit dem **.txt" Verlängerung:

$ fGrep -r - -include "*.txt "Profis Dir-1 
Fügen Sie Dateien beim Suchen des Musters hinzu

In der obigen Ausgabe können wir feststellen, dass das Muster -Matching für die Dateien mit übersprungen wird **.MD ” Und **.Daten" Erweiterungen.

In diesem Artikel haben wir einige nützliche Beispiele für das erörtert FGREP Befehl. Anfänger können diese Beispiele im täglichen Leben nutzen, um die Produktivität während der Arbeit mit Linux zu verbessern.

Kennen Sie ein anderes bestes Beispiel des FGREP -Befehls in Linux?? Lassen Sie uns Ihre Ansichten in den Kommentaren unten wissen.