Fish Shell:
Slette tegn som matcher et mønster
How to:
For å slette tegn i Fish Shell, bruk string replace
. Eksempel fjerner alle ‘a’-er fra en streng:
echo "bananarama" | string replace -a "a" ""
Output:
bnnrm
For å slette mønstre, bruk wildcards (stjernetegn):
echo "b123a456xyz789" | string replace -ar "[0-9]" ""
Output:
baxyz
Interaktivt, slett ‘xyz’ fra en variabel:
set myvar "helloxyzworld"
string replace -r "xyz" "" -- $myvar
echo $myvar
Output:
helloworld
Deep Dive
Pattern matching har vært en del av programmering siden tidlige dager. Det er andre måter å gjøre det på i Unix-lignende systemer, som sed
eller grep
. Men Fish Shell forenkler prosessen med string
-kommandoer.
Fish’s string
kommandoer ble introdusert for lesbarhet og enkel bruk. Ulik tradisjonell ‘sed’, trenger du ikke å huske komplekse syntakser for vanlige oppgaver.
Implementasjonsdetaljer:
string replace
er bygd inn i Fish.-a
flagget står for “all” - erstatt alle instanser.-r
aktiverer regex eller regulære uttrykk for avanserte mønstre.