【发布时间】:2023-03-20 09:30:02
【问题描述】:
我想使用 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有很多不同的特殊字符)
【问题讨论】:
-
$service 的价值是什么?
-
如何设置服务变量的值?您的示例对我来说很好用(我做了 service="a\a",并且替换的字符串中只出现了一个反斜杠)。
-
尝试使用单引号
-
$service 的值为
b_a^c_b_]Wdd[]X[X[W206C?2@,.,A@2AW!w6"| -
但是你的 $service 值中没有反斜杠!