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.txtDieser 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.txtErsetzen Sie alle Vorkommen von “foo” mit “bar” in data.txt:
sed 's/foo/bar/g' data.txtVerwendung 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.2Ziffern 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.XFortgeschrittenes 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}' datafileDieser 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.