Erstatte en delstreng i bash
Hej
Hvordan erstatter man en delstreng i en variabel med en anden delstreng.
Eksempelvis skal
Hvordan erstatter man en delstreng i en variabel med en anden delstreng.
Eksempelvis skal
ORIG=hejmedmig
REPLACED=${ORIG//mig/dig}
echo $REPLACED
udskrive hejmeddig
Når jeg kører fejlen får jeg en fejl: Bad Substitution.
Er der en, der kan hjælpe?
Kommentarer9
Det virker fint når jeg
Hvilken version af kører du? Bash 4.* kan mange spændende ting som du ikke kunne i 3.*, skal dog ikke kunne sige om dette er en af dem.
http://www.tldp.org/LDP/abs/h
Søg efter 'Substring Replacement'.
#2 Hvis jeg bruger ideen
stringZ=abcABC123ABCabc
echo ${stringZ/abc/xyz} # xyzABC123ABCabc
får jeg samme fejl
#1 GNU bash, version 4.1.5(1)-release (x86_64-pc-linux-gnu)
Jeg er ikke så meget med
Prøv at se i man bash under Parameter Substitution. Der er det hos mig beskrevet som
${parameter/pattern/string}
nøjagtig som i eksemplet, jeg henviste til. Prøv at se om der evt. skulle være ændret i syntaksen, hvilket jeg dog finder ret usansynligt.
Hvis andet glipper kan du evt. prøve at opdatere bash eller installere en ældre version. Eller nyere. Det virker åbenbart med 4.1.9.
Men pas på, hvad du gør. Hvis du får slettet bash, får du problemer.
Lukker lige det irriterende
Sjovt får samme
Nu virker det, hvordan starter du scriptet?
sh script.sh
ah okay, det virker åbenbart med ./a.sh
sh script.sh
#!/bin/bash
Som første linie i dit bash script
Prøv herefter
./script.sh
Lavede samme fejl 40. Hvis
Du kan også bruge bash filnavn.