Tutorial zu regulären Linux-Ausdrücken: Grep-Regex-Beispiel

Was sind reguläre Linux-Ausdrücke?

Reguläre Linux-Ausdrücke sind Sonderzeichen, die bei der Suche nach Daten und dem Abgleichen komplexer Muster helfen. Reguläre Ausdrücke werden als „regexp“ oder „regex“ abgekürzt. Sie werden in vielen Linux-Programmen wie grep, bash, rename, sed usw. verwendet.

Arten von regulären Ausdrücken

Um das Verständnis zu erleichtern, lernen wir die verschiedenen Regex-Typen nacheinander kennen.

Klicke hier wenn das Video nicht zugänglich ist

Grundlegende reguläre Ausdrücke

Einige der häufig verwendeten Befehle mit regulären Ausdrücken sind tr, sed, vi und grep. Nachfolgend sind einige der grundlegenden Regex aufgeführt.

Symbol Beschreibungen
. ersetzt jedes beliebige Zeichen
^ Entspricht dem Anfang der Zeichenfolge
$ Entspricht dem Ende der Zeichenfolge
* stimmt mit dem vorhergehenden Zeichen null oder mehrmals überein
\ Sonderzeichen darstellen
() Gruppiert reguläre Ausdrücke
? Entspricht genau einem Zeichen

Sehen wir uns ein Beispiel an.

Führen Sie das Cat-Beispiel aus, um den Inhalt einer vorhandenen Datei anzuzeigen

Grundlegende reguläre Ausdrücke

Suchen Sie nach Inhalten, die den Buchstaben „a“ enthalten.

Grundlegende reguläre Ausdrücke

'^' entspricht dem Anfang einer Zeichenfolge. Suchen wir nach Inhalten, die mit a BEGINNEN

Grundlegende reguläre Ausdrücke

Es werden nur Zeilen gefiltert, die mit einem Zeichen beginnen. Zeilen, die am Anfang nicht das Zeichen „a“ enthalten, werden ignoriert.

Schauen wir uns ein anderes Beispiel an –

Grundlegende reguläre Ausdrücke

Wählen Sie mit nur die Zeilen aus, die mit t enden $

Grundlegende reguläre Ausdrücke

Intervall reguläre Ausdrücke

Diese Ausdrücke geben Auskunft über die Häufigkeit des Vorkommens eines Zeichens in einer Zeichenfolge. Sie sind

Ausdruck Beschreibung
{nicht} Entspricht genau dem vorhergehenden Zeichen, das n-mal vorkommt
{n, m} Entspricht dem vorhergehenden Zeichen, das n-mal vorkommt, jedoch nicht öfter als m
{N, } Entspricht dem vorhergehenden Zeichen nur, wenn es mindestens n-mal vorkommt

Ejemplo:

Alle Zeilen herausfiltern, die das Zeichen „p“ enthalten

Intervall reguläre Ausdrücke

Wir wollen überprüfen, ob das Zeichen „p“ genau zweimal hintereinander in einer Zeichenfolge vorkommt. Die Syntax hierfür wäre:

cat sample | grep -E p\{2}

Intervall reguläre Ausdrücke

Hinweis: Bei diesen regulären Ausdrücken müssen Sie -E hinzufügen.

Erweiterte reguläre Ausdrücke

Diese regulären Ausdrücke enthalten Kombinationen aus mehr als einem Ausdruck. Einige von ihnen sind:

Ausdruck Beschreibung
\+ Stimmt mit einem oder mehreren Vorkommen des vorherigen Zeichens überein
\? Entspricht keinem oder einem Vorkommen des vorherigen Zeichens

Ejemplo:

Suche nach allen Zeichen 't'

Erweiterte reguläre Ausdrücke

Angenommen, wir möchten Zeilen herausfiltern, in denen das Zeichen „a“ vor dem Zeichen „t“ steht.

Wir können den Befehl like verwenden

cat sample|grep "a\+t"

Erweiterte reguläre Ausdrücke

Strebenerweiterung

Die Syntax für die Klammererweiterung ist entweder eine Sequenz oder eine durch Kommas getrennte Liste von Elementen in geschweiften Klammern „{}“. Die Anfangs- und Endelemente einer Sequenz werden durch zwei Punkte „..“ getrennt.

Einige Beispiele:

Strebenerweiterung

In den obigen Beispielen erstellt der Befehl echo Zeichenfolgen mithilfe der Klammererweiterung.

Zusammenfassung:

  • Reguläre Ausdrücke sind eine Reihe von Zeichen, die zum Überprüfen von Mustern in Zeichenfolgen verwendet werden
  • Sie werden auch „regexp“ und „regex“ genannt.
  • Es ist wichtig, reguläre Ausdrücke zum Schreiben von Skripten zu lernen
  • Einige grundlegende reguläre Ausdrücke sind:
Symbol Beschreibungen
. ersetzt jedes beliebige Zeichen
^ Entspricht dem Anfang der Zeichenfolge
$ Entspricht dem Ende der Zeichenfolge
  • Einige erweiterte reguläre Ausdrücke sind:
Ausdruck Beschreibung

\+

Stimmt mit einem oder mehreren Vorkommen des vorherigen Zeichens überein
\? Entspricht keinem oder einem Vorkommen des vorherigen Zeichens
  • Einige reguläre Intervallausdrücke sind:
Ausdruck Beschreibung
{nicht} Entspricht genau dem vorhergehenden Zeichen, das n-mal vorkommt
{n, m} Entspricht dem vorhergehenden Zeichen, das n-mal vorkommt, jedoch nicht öfter als m
{N, } Entspricht dem vorhergehenden Zeichen nur, wenn es mindestens n-mal vorkommt
  • Die Klammererweiterung wird zum Generieren von Zeichenfolgen verwendet. Es hilft beim Erstellen mehrerer Zeichenfolgen aus einer.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: