2013-06-21 192 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