Reguläre Ausdrücke verwenden

Fish Shell:
Reguläre Ausdrücke verwenden

Wie:

Obwohl die Fish Shell selbst keinen eingebauten Befehl für regex hat, nutzt sie effektiv externe Befehle wie grep, sed und awk, die regex unterstützen und Ihnen erlauben, regex-Operationen in Ihre Skripte zu integrieren.

Grundlegende Musterabgleiche mit grep

Suchen Sie nach Zeilen in einer Datei, die einem Muster entsprechen:

grep '^[0-9]+' myfile.txt

Dieser Befehl findet Zeilen, die in myfile.txt mit einer oder mehreren Ziffern beginnen.

Extrahieren & Ersetzen mit sed

Extrahieren Sie Telefonnummern aus einer Datei:

sed -n '/\([0-9]\{3\}\)-\([0-9]\{3\}\)-\([0-9]\{4\}\)/p' contacts.txt

Ersetzen Sie alle Vorkommen von “foo” mit “bar” in data.txt:

sed 's/foo/bar/g' data.txt

Verwendung von string für einfache Regex

Der string-Befehl der Fish Shell unterstützt einfache regex-Operationen wie Abgleich und Ersetzen:

Ein Muster in einer Zeichenkette abgleichen:

echo "fish 3.1.2" | string match -r '3\.[0-9]+\.[0-9]+'

Ausgabe:

3.1.2

Ziffern nach ‘fish’ mit ‘X.X.X’ ersetzen:

echo "Welcome to fish 3.1.2" | string replace -ra '([fish]+\s)[0-9\.]+' '$1X.X.X'

Ausgabe:

Welcome to fish X.X.X

Fortgeschrittenes Abgleichen mit awk

Drucken Sie die zweite Spalte der Daten aus, wo die erste Spalte einem spezifischen Muster entspricht:

awk '$1 ~ /^a[0-9]+$/ {print $2}' datafile

Dieser Befehl sucht in datafile nach Zeilen, bei denen die erste Spalte mit einem “a” beginnt, gefolgt von einer oder mehreren Ziffern, und druckt die zweite Spalte aus.

Durch die Integration dieser externen Befehle können Programmierer der Fish Shell die volle Leistungsfähigkeit regulärer Ausdrücke für komplexe Textmanipulationsaufgaben nutzen und die nativen Fähigkeiten der Shell erweitern.