Säännöllisten lausekkeiden käyttö

Fish Shell:
Säännöllisten lausekkeiden käyttö

Miten:

Vaikka Fish Shellissä ei ole sisäänrakennettua komentoa regexille, se käyttää tehokkaasti ulkoisia komentoja kuten grep, sed ja awk, jotka tukevat regexiä, sallien sinun sisällyttää regex-operaatioita skripteihisi.

Peruskuvioiden Vastaavuus grep-käytössä

Etsi tiedostosta rivejä, jotka vastaavat mallia:

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

Tämä komento etsii myfile.txt-tiedostosta rivejä, jotka alkavat yhdellä tai useammalla numerolla.

Uuttaminen & Korvaaminen sed-käytössä

Uuta puhelinnumerot tiedostosta:

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

Korvaa kaikki “foo”-esiintymät “bar”-sanalla data.txt-tiedostossa:

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

Käyttäen string-komentoa Perus Regexille

Vastaa mallia merkkijonossa:

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

Tuloste:

3.1.2

Korvaa numerot ‘fish’-sanan jälkeen ‘X.X.X’:lla:

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

Tuloste:

Welcome to fish X.X.X

Kehittynyt Vastaavuus awk-käytössä

Tulosta toinen sarake tiedoista, missä ensimmäinen sarake vastaa tiettyä mallia:

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

Tämä komento etsii datafile-tiedostosta rivejä, joissa ensimmäinen sarake alkaa “a”:lla seurattuna yhdellä tai useammalla numerolla, ja tulostaa toisen sarakkeen.

Integroimalla nämä ulkoiset komennot, Fish Shellin ohjelmoijat voivat hyödyntää täysin säännöllisten lausekkeiden tehoa monimutkaisten tekstimanipulaatiotehtävien suorittamiseen, parantaen shellin natiiveja kykyjä.