So verwenden Sie den Befehl FGREP, um nach Zeichenfolgen unter Linux zu suchen
- 3605
- 1021
- Marleen Weight
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.txtDateiinhalte 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.txtSuche 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.txtSuche 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.txtStellen 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.txtSuchen 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.txtSuchen 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-1Dateien 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-1Mehrere 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-1Fü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.