Jawaban:
Mencoba:
$ printf '%s\n' "${FOO//$WORDTOREMOVE/}"
CATS DOGS FISH
Ini juga bekerja di 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"
Diasumsikan bahwa kata-kata Anda dibatasi oleh ruang dan memiliki efek samping yang menghilangkan spasi sebelum dan sesudah "$WORDTOREMOVE"
.
Menggunakan pengganti bash substring:
FOO = $ {FOO // $ WORDTOREMOVE /}
// menggantikan semua kemunculan substring ($ WORDTOREMOVE) dengan konten antara / dan}. Dalam hal ini tidak ada.
Untuk informasi tentang ini dan cara-cara lain untuk bekerja dengan string dalam bash, lihat bagian 10.1. Memanipulasi String dari Lanjutan Bash-Scripting Guide .