スペースで区切られた単語のリストがある場合、外部コマンドを実行せずにすべての単語にプレフィックス(またはサフィックス)を追加するにはどうすればよいですか。
Make には次の構成があります。
$(addprefix foo,bar baz)
⇒ foobar foobaz
ベストアンサー1
bash 5.2(現在のベータ版)以降では、次のことができます。
bash-5.2$ shopt -s extglob patsub_replacement
bash-5.2$ string='foo bar baz'
bash-5.2$ printf '%s\n' "${string//+([^ ])/&suffix}"
foosuffix barsuffix bazsuffix
ksh93と同じ:
printf '%s\n' "${string//+([^ ])/\0suffix}"
またはzsh
:
set -o extendedglob
printf '%s\n' "${string//(#m)([^ ])##/${MATCH}suffix}"