配列があります。
CATEGORIES=(one two three four)
パラメーター拡張を使用して、各配列メンバーの前に以下を追加できます。
echo ${CATEGORIES[@]/#/foo }
同じ方法で各配列メンバーに追加できます。
echo ${CATEGORIES[@]/%/ bar}
どのように両方を持つことができますか?次のいずれも機能しません。
echo ${CATEGORIES[@]/(.*)/foo \1 bar}
echo ${CATEGORIES[@]/(.*)/foo $1 bar}
echo ${CATEGORIES[@]/(.*)/foo ${BASH_REMATCH[1]} bar}
ベストアンサー1
最終目標に応じて、以下を使用できますprintf
。
$ a=(1 2 3)
$ printf "foo %s bar\n" "${a[@]}"
foo 1 bar
foo 2 bar
foo 3 bar
printf
書式文字列はすべての引数が使用されるまで再利用されるため、文字列セットにいくつかの書式を適用する簡単な方法が提供されます。