GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Das Grep-Befehls-Tutorial mit Beispielen für Anfänger

In diesem Tutorial lernen wir etwas über "grep" Befehl. Grep steht für G lobales r zB e Ausdruck p druck. Wie der Name schon sagt, wird Grep verwendet, um Textdateien mit regulären Ausdrücken zu durchsuchen (kurz regex ). Es druckt die Zeilen, die dem angegebenen Muster entsprechen, in einer Textdatei. Wenn keine Datei angegeben ist, sucht grep rekursiv nach dem angegebenen Muster in den Dateien im aktuellen Verzeichnis. Grep hat zwei Varianten, nämlich egrep und fgrep . Diese Varianten sind veraltet, werden aber aus Gründen der Abwärtskompatibilität bereitgestellt. Anstatt "grep -E" und "grep -F" zu verwenden, können Sie "egrp" bzw. "fgrep" verwenden. Lassen Sie uns ohne weiteres anfangen.

Grep-Befehlsbeispiele

Ich habe eine Datei namens file.txt mit einigen zufälligen Wörtern. Schauen wir uns file.txt an:

$ cat file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
hello world
HELLO world

Um die Suche zu starten, geben Sie einfach grep ein, gefolgt von dem, wonach Sie suchen, und von wo aus Sie suchen. Zum Beispiel werde ich nach der Zeichenfolge "nix" suchen in file.txt. Dazu führe ich Folgendes aus:

$ grep nix file.txt

Beispielausgabe:

ostechnix
Ostechnix
o$technix
unix

Wie Sie in der obigen Ausgabe sehen, haben wir zwei Wörter, die das übereinstimmende Muster „nix“ enthalten. Wenn die Suchzeichenfolge aus zwei Wörtern besteht, erwähnen Sie sie wie unten in einfachen Anführungszeichen.

$ grep 'hello world' file.txt 
hello world

Sie können auch -n verwenden Flag, um die Zeilennummern in der Ausgabe anzuzeigen:

$ grep -n nix file.txt

Beispielausgabe:

1:ostechnix
2:Ostechnix
3:o$technix
6:unix

Dies kann nützlich sein, wenn Sie mit einem sehr langen Code arbeiten.

Bitte beachten Sie, dass bei grep zwischen Groß- und Kleinschreibung unterschieden wird . Zum Beispiel, wenn Sie nach "os" suchen , es werden keine Zeilen angezeigt, die Großbuchstaben enthalten, z. B. Os.

Überprüfen Sie das folgende Beispiel.

$ grep os file.txt 
ostechnix

Aber ich habe ein anderes Wort namens "Ostechnix" in file.txt, aber grep hat es nicht aufgelistet.

Wenn Sie jedoch Groß- und Kleinschreibung ignorieren möchten, können Sie "-i" verwenden kennzeichnen wie unten.

$ grep -i os file.txt 
ostechnix
Ostechn1x
$ grep -i 'hello world' file.txt 
hello world
HELLO world

Jetzt kümmerte sich grep nicht um die Groß-/Kleinschreibung und wir bekamen die Wörter, die sowohl Groß- als auch Kleinbuchstaben im Ergebnis enthalten.

Wir können auch eine Ausgabe eines Befehls in grep leiten. Sehen Sie sich das folgende Beispiel an.

$ cat file.txt | grep os
ostechnix

Jetzt sehen, was wir haben. Die Ausgabe der file.txt wird an grep geleitet und die Wörter, die die Buchstaben „os“ in file.txt enthalten, wurden angezeigt.

Wir können auch einige Sonderzeichen oder reguläre Ausdrücke in grep verwenden.

  • ^ - Am Anfang der Zeile suchen.
  • $ - am Ende der Zeile suchen.
  • . - Suchen Sie nach einem beliebigen Zeichen.

Lassen Sie mich Ihnen ein Beispiel zeigen, damit Sie verstehen, wo und wie Sie diese Sonderzeichen verwenden.

Wie Sie bereits wissen, können wir nach Wörtern suchen, die die Zeichenfolge "tech" enthalten wie unten.

$ grep tech file.txt
ostechnix
Ostechnix
o$technix
technology

Aber was wäre, wenn Sie nur nach den Zeilen suchen wollten, die nur mit dem Wort „tech“ beginnen? Sie möchten nicht alle Wörter anzeigen, die die Zeichenfolge enthalten, sondern nur die Wörter, die die Zeichenfolge „tech“ am Anfang haben. Es ist auch möglich. Hier kommen Sonderzeichen ins Spiel.

Um nach den Wörtern zu suchen, die dem Muster „tech“ am Anfang der Zeile in einer Datei entsprechen, führen Sie Folgendes aus:

$ grep ^tech file.txt
technology

Ebenso können wir nach Wörtern suchen, die mit bestimmten Buchstaben enden, zum Beispiel "x" , wie unten.

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Außerdem können Sie mit . nach Wörtern suchen, die beliebige Zeichen enthalten (Punkt).

Lassen Sie uns zum Beispiel nach jedem Wort suchen, das "n" enthält in der Datei.

$ grep .n file.txt
ostechnix
Ostechnix
o$technix
linux
linus
unix
technology

Sie sollten jetzt ein grundlegendes Verständnis für die Verwendung von grep haben. Lassen Sie uns fortfahren und die beiden anderen Varianten lernen, nämlich egrep und fgrep .

Beispiele für Egrep-Befehle

egrep steht für e xtended grep . Es ähnelt "grep -E" Befehl. Es wird alles tun, was grep tun wird. Es bietet jedoch einige zusätzliche Funktionalitäten, wie z. B. die Verwendung komplizierter regulärer Ausdrücke, als der normale grep-Befehl standardmäßig bietet.

Beispielsweise können wir nach beliebigen Wörtern suchen, die entweder mit "l" beginnen oder "o" .

Denken Sie daran, dass wir das Caret-Symbol (^) verwenden, um Wörter am Zeilenanfang zu suchen. Daher lautet unser Befehl für die obige Abfrage:

$ egrep '^(l|o)' file.txt
ostechnix
o$technix
linux
linus

Sehen? Wir haben alle Wörter, die entweder mit „l“ oder „o“ beginnen. Bitte beachten Sie, dass der normale grep-Befehl dies nicht kann.

Ebenso können wir nach Zeilen suchen, die mit einem beliebigen Zeichenbereich zwischen "l" und "u" beginnen. Das heißt, wir erhalten die Zeilen, die mit l, m, n, o, p, q, r, s, t und u beginnen. Alles andere wird aus dem Ergebnis weggelassen.

$ egrep '^[l-u]' file.txt
ostechnix
o$technix
linux
linus
unix
technology

Bitte beachten Sie, dass ich eckige Klammern verwendet habe ([), um nach dem Wortbereich zu suchen. Da grep zwischen Groß- und Kleinschreibung unterscheidet, findet es im angegebenen Bereich keine Zeilen, die mit Großbuchstaben beginnen.

Um alle Zeilen anzuzeigen, die sowohl mit Groß- als auch mit Kleinbuchstaben beginnen, verwenden wir:

$ egrep '^[l-u]|[L-U]' file.txt

Oder,

$ egrep '^([l-u]|[L-U])' file.txt

Beispielausgabe:

ostechnix
Ostechnix
o$technix
linux
linus
unix
technology
HELLO world

Sehen? Jetzt haben wir die Wörter, die mit dem Zeichenbereich "l" bis "u" (entweder Groß- oder Kleinschreibung) beginnen.

Fgrep-Befehlsbeispiele

fgrep steht für f ast grep . Es ähnelt "grep -F" . fgrep kann keine regulären Ausdrücke oder Sonderzeichen erkennen. fgrep kann verwendet werden, wenn reguläre Ausdrücke ausgewertet werden sollen.

Zum Beispiel verwenden wir den folgenden Befehl, um die Wörter zu finden, die auf "x" enden .

$ grep x$ file.txt
ostechnix
Ostechnix
o$technix
linux
unix

Führen Sie nun denselben Befehl mit fgrep.

aus
$ fgrep x$ file.txt

Es wird nichts angezeigt, da es die Sonderzeichen nicht auswerten konnte.

Sehen wir uns nun ein weiteres Beispiel an. Um nach den Wörtern zu suchen, die mit der Zeichenfolge "o$" übereinstimmen Mit dem Befehl grep machen wir:

$ grep o$ file.txt

Aber wir bekommen nichts, warum? Weil wir gemäß dem obigen Befehl das Dollarzeichen ($) verwenden, um die Wörter zu finden, die auf "o" enden. Da in file.txt keine Zeichen mit "o" enden, erhalten wir nichts.

Führen Sie nun denselben Befehl mit fgrep.

aus
$ fgrep o$ file.txt 
o$technix

Sehen? Hier verwenden wir den Befehl fgrep. Es ignoriert einfach das Dollarzeichen (natürlich das Sonderzeichen) und zeigt das Wort an, das die Zeichenkette "o$" ​​enthält.

Geben Sie für weitere Details zu grep Folgendes ein:

$ grep --help

Es wird alle möglichen Optionen geben. Oder lesen Sie die Manpages.

$ man grep

Empfohlene Lektüre:

  • Lernen Sie, Manpages effizient zu verwenden
Etymologie von grep

Grep wurde über Nacht von Ken Thompson geschrieben , derselbe Typ, der Unix geschrieben hat. Aber warum und wie kam es zu seinem Namen? Professor Brian Kernighan erklärt die Etymologie von grep in diesem Video.

Und das ist alles. Grep ist einer der wichtigsten Befehle, die Sie gründlich lernen sollten.

Sie wissen jetzt, was grep ist und wie man es verwendet, um Textdateien mit übereinstimmenden Mustern in GNU/Linux zu durchsuchen. Außerdem haben Sie erfahren, wie Grep zu seinem Namen kam. Ich hoffe, das war hilfreich.


Linux
  1. Linux expand Command Tutorial für Anfänger (mit Beispielen)

  2. Linux-Factor-Befehls-Tutorial für Anfänger (mit Beispielen)

  3. Linux yes Command Tutorial für Anfänger (mit Beispielen)

  4. Das Type Command Tutorial mit Beispielen für Anfänger

  5. Das Shuf-Befehls-Tutorial mit Beispielen für Anfänger

Das Faltbefehls-Tutorial mit Beispielen für Anfänger

Das df-Befehls-Tutorial mit Beispielen für Anfänger

Das Top Command Tutorial mit Beispielen für Anfänger

Das mktemp-Befehls-Tutorial mit Beispielen für Anfänger

Das Uniq Command Tutorial mit Beispielen für Anfänger

Das fc Command Tutorial mit Beispielen für Anfänger