Linux-Tutorial für reguläre Ausdrücke: Grep Regex-Beispiel

Inhaltsverzeichnis:

Anonim

Was sind reguläre Linux-Ausdrücke?

Linux Regular Expressions sind Sonderzeichen, mit denen Daten gesucht und komplexe Muster abgeglichen werden können. Reguläre Ausdrücke werden als "regulärer Ausdruck" oder "regulärer Ausdruck" abgekürzt. Sie werden in vielen Linux-Programmen wie grep, bash, rename, sed usw. verwendet.

Arten von regulären Ausdrücken

Lassen Sie uns zum besseren Verständnis die verschiedenen Arten von Regex nacheinander lernen.

  • Grundlegende reguläre Ausdrücke
  • Intervall Reguläre Ausdrücke
  • Erweiterte reguläre Ausdrücke
  • Zusammenfassung

Klicken Sie 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 Zeichen
stimmt mit dem Anfang der Zeichenfolge überein
$ Entspricht dem Ende der Zeichenfolge
* * stimmt mit dem vorhergehenden Zeichen mindestens nullmal überein
\. Stellen Sie Sonderzeichen dar
() 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

Suchen Sie nach Inhalten mit dem Buchstaben 'a'.

' ^ ' entspricht dem Anfang eines Strings. Lassen Sie uns nach Inhalten suchen, die mit a BEGINNEN

Nur Zeilen, die mit Zeichen beginnen, werden gefiltert. Zeilen, die zu Beginn nicht das Zeichen 'a' enthalten, werden ignoriert.

Schauen wir uns ein anderes Beispiel an -

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

Intervall Reguläre Ausdrücke

Diese Ausdrücke geben Auskunft über die Anzahl der Vorkommen eines Zeichens in einer Zeichenfolge. Sie sind

Ausdruck Beschreibung
{n}

Entspricht dem vorhergehenden Zeichen, das n-mal genau erscheint

{n, m} Entspricht dem vorhergehenden Zeichen, das 'n' erscheint, jedoch nicht mehr als m
{n,} Entspricht dem vorhergehenden Zeichen nur, wenn es n-mal oder öfter erscheint

Beispiel:

Filtern Sie alle Zeilen heraus, die das Zeichen 'p' enthalten.

Wir wollen überprüfen, ob das Zeichen 'p' genau zweimal in einer Zeichenfolge nacheinander vorkommt. Dafür wäre die Syntax:

cat sample | grep -E p\{2}

Hinweis: Sie müssen -E mit diesen regulären Ausdrücken 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

\ +

Entspricht einem oder mehreren Vorkommen des vorherigen Zeichens

\?

Entspricht null oder einem Vorkommen des vorherigen Zeichens

Beispiel:

Suche nach allen Zeichen 't'

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

Wir können Befehle wie verwenden

cat sample|grep "a\+t"

Klammererweiterung

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

Einige Beispiele:

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

Zusammenfassung:

  • Reguläre Ausdrücke sind eine Reihe von Zeichen, mit denen Muster in Zeichenfolgen überprüft werden
  • Sie werden auch als "Regexp" und "Regex" bezeichnet.
  • Es ist wichtig, reguläre Ausdrücke zum Schreiben von Skripten zu lernen
  • Einige grundlegende reguläre Ausdrücke sind:
Symbol Beschreibungen
. ersetzt jedes Zeichen
stimmt mit dem Anfang der Zeichenfolge überein
$ Entspricht dem Ende der Zeichenfolge
  • Einige erweiterte reguläre Ausdrücke sind:
Ausdruck Beschreibung
\ + Entspricht einem oder mehreren Vorkommen des vorherigen Zeichens
\? Entspricht null oder einem Vorkommen des vorherigen Zeichens
  • Einige reguläre Intervallausdrücke sind:
Ausdruck Beschreibung
{n} Entspricht dem vorhergehenden Zeichen, das n-mal genau erscheint
{n, m} Entspricht dem vorhergehenden Zeichen, das 'n' erscheint, jedoch nicht mehr als m
{n,} Entspricht dem vorhergehenden Zeichen nur, wenn es n-mal oder öfter erscheint
  • Die Klammererweiterung wird zum Generieren von Zeichenfolgen verwendet. Es hilft beim Erstellen mehrerer Zeichenfolgen aus einer.