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ä.