変数内の特定の単語を削除


23

ではbash、スクリプト、どのように私は、文字列から単語を削除することができ、単語が変数に格納されます。

FOO="CATS DOGS FISH MICE"
WORDTOREMOVE="MICE"

回答:


30

試してください:

$ printf '%s\n' "${FOO//$WORDTOREMOVE/}"
CATS DOGS FISH

これはまたで働きますksh93mkshzsh


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"

単語はスペースで区切られ、前後のスペースを削除する副作用があると想定しています"$WORDTOREMOVE"


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.