Ich habe "Ich liebe Suzi und Marry" und möchte "Suzi" in "Sara" ändern.
firstString="Ich liebe Suzi und Marry"
secondString="Sara"
Gewünschtes Ergebnis:
firstString="Ich liebe Sara und Marry"
Ich habe "Ich liebe Suzi und Marry" und möchte "Suzi" in "Sara" ändern.
firstString="Ich liebe Suzi und Marry"
secondString="Sara"
Gewünschtes Ergebnis:
firstString="Ich liebe Sara und Marry"
Reiner POSIX Shell-Methode, die im Gegensatz zu Roman Kazanovskyi's sed
-basierte Antwort keine externen Tools benötigt, sondern nur die eigenen nativen Parametererweiterungen der Shell. Beachten Sie, dass lange Dateinamen minimiert werden, damit der Code besser auf einer Linie passt:
f="Ich liebe Suzi und Marry"
s=Sara
t=Suzi
[ "${f%$t*}" != "$f" ] && f="${f%$t*}$s${f#*$t}"
echo "$f"
Ausgabe:
Ich liebe Sara und Marry
So funktioniert es:
Entfernen des kleinsten Suffixmusters. "${f%$t*}"
gibt "Ich liebe
" zurück, wenn das Suffix $t
"Suzi*
" in $f
"Ich liebe
Suzi and Marry
" ist.
Aber wenn t=Zelda
ist, löscht "${f%$t*}"
nichts und gibt den gesamten String "Ich liebe Suzi und Marry
" zurück.
Dies wird verwendet, um zu testen, ob $t
in $f
ist mit [ "${f%$t*}" != "$f" ]
, das zu wahr evaluiert, wenn der String $f
"Suzi*
" enthält und zu falsch wenn nicht.
Wenn der Test wahr ergibt, konstruieren Sie den gewünschten String mit Entfernen des kleinsten Suffixmusters ${f%$t*}
"Ich liebe
" und Entfernen des kleinsten Präfixmusters ${f#*$t}
"and Marry
", mit dem 2. String $s
"Sara
" dazwischen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.