Fish Shell:
Ta bort tecken som matchar ett mönster
Så här gör du:
Med Fish Shell kan du använda string
kommandot för att hantera textsträngar. Här är några exempel:
# Ta bort alla punkter från en sträng
echo "F.i.s.h. .S.h.e.l.l." | string replace -a "." ""
Output:
Fish Shell
# Ta bort allt efter ett "@"-tecken i en e-postadress
echo "[email protected]" | string match -r ".*(?=@)"
Output:
example
# Använd en wildcard (*) för att ta bort alla bokstäver 'a'
echo "Banana Bandana" | string replace -a "a" ""
Output:
Bnn Bndn
Fördjupning
Att ta bort tecken baserat på mönster är inte nytt. Traditionella unix-verktyg som sed
och awk
har hanterat textbearbetning länge. Fish Shell erbjuder string
kommandot som en kraftfull och användarvänlig inbyggd funktion för strängmanipulation. Det underlättar vanliga uppgifter som att söka och ersätta text utan att behöva pipa genom flera verktyg.
string
kommandot är en del av Fish sedan version 2.3.0 och stöder reguljära uttryck, vilket ger det flexibilitet att hantera komplexa matchningsmönster. Det är inte bara snabbare än att kalla externa verktyg för varje operation, det är också integrerat direkt i shellet, vilket ger en bättre användarupplevelse.
När det gäller alternativ, kan du också använda externa program som sed
eller perl
om du behöver kraftigare textbearbetningsmöjligheter, särskilt för komplexa ersättningslogiker eller för att hantera enorma databaser.
Se även
- Fish dokumentation för
string
: https://fishshell.com/docs/current/cmds/string.html - Reguljära uttryck i Fish: https://fishshell.com/docs/current/tutorial.html#tut_regexes
- Unix
sed
kommando: https://www.gnu.org/software/sed/manual/sed.html - GNU
awk
användarmanual: https://www.gnu.org/software/gawk/manual/gawk.html