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
Suchen Sie nach Inhalten, die den Buchstaben „a“ enthalten.
'^' entspricht dem Anfang einer Zeichenfolge. Suchen wir nach Inhalten, die mit a BEGINNEN
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 –
Wählen Sie mit nur die Zeilen aus, die mit t enden $
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
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}
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'
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"
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:
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.










