2013-06-21 194 views
2

我想用字符串$ service替换一个变量SERVICE,其中包含一个使用sed的反斜杠。我做了以下使用sed替换一个包含反斜杠的字符串

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

使用这个我正在取代字符串作为

b_a^c_b_\]Wdd[]X\[X\[[email protected],.\\,[email protected]!w6"| 

那里,因为我想

b_a^c_b_\]Wdd[]X\[X\[[email protected],.\,[email protected]!w6"| 

是否有任何其他的方式来做到这一点。 PS(字符串$服务有许多不同的特殊字符)

+0

什么是$服务的价值? – anubhava

+0

如何设置服务变量的值?你的例子对我来说工作得很好(我服务=“a \ a”,只有一个反斜杠出现在被替换的字符串中)。 – cabad

+0

尝试使用单引号 – zmo

回答

3

你还不如不使用都只是这样,而不是:

while read -r; do 
    echo "${REPLY//SERVICE/$service}" 
done