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.