2

sed を使用して、変数 SERVICE をバックスラッシュを含む文字列 $service に置き換えたいと考えています。私は次のことをしました

sed "s/SERVICE/`printf '%q' "${service}"`/g"

これを使用して、置換された文字列を次のように取得しています

b_a^c_b_\]Wdd[]X\[X\[W206C?2@,.\\,A@2AW!w6"|

私が望むところ

b_a^c_b_\]Wdd[]X\[X\[W206C?2@,.\,A@2AW!w6"|

それを行う他の方法はありますか?PS (文字列 $service にはさまざまな特殊文字が含まれています)

4

1 に答える 1

3

をまったく使用せず、代わりに次のように

while read -r; do
    echo "${REPLY//SERVICE/$service}"
done
于 2013-06-21T18:05:26.037 に答える