Respuestas:
Tratar:
$ printf '%s\n' "${FOO//$WORDTOREMOVE/}"
CATS DOGS FISH
Esto también funciona en ksh93
, mksh
, zsh
.
POSIXLY:
FOO="CATS DOGS FISH MICE"
WORDTOREMOVE="MICE"
remove_word() (
set -f
IFS=' '
s=$1
w=$2
set -- $1
for arg do
shift
[ "$arg" = "$w" ] && continue
set -- "$@" "$arg"
done
printf '%s\n' "$*"
)
remove_word "$FOO" "$WORDTOREMOVE"
Asume que sus palabras están delimitadas por espacios y tiene efectos secundarios que eliminan espacios antes y después "$WORDTOREMOVE"
.
Usando el reemplazo de la subcadena bash:
FOO = $ {FOO // $ WORDTOREMOVE /}
// reemplaza todas las ocurrencias de la subcadena ($ WORDTOREMOVE) con el contenido entre / y}. En este caso nada.
Para obtener información sobre esta y otras formas de trabajar con cadenas en bash, consulte la sección 10.1. Manipulación de cadenas de la Guía avanzada de secuencias de comandos Bash .