【发布时间】:2009-09-29 13:14:59
【问题描述】:
我想自动转义字符串中的一些特殊字符。 我想通过一些 sed 来回显该字符串并通过管道传输它。这似乎在反引号内不起作用。 那为什么呢
echo "foo[bar]" | sed 's/\[/\\[/g'
返回
foo\[bar]
但是
FOO=`echo "foo[bar]" | sed 's/\[/\\[/g'` && echo $FOO
只是返回
foo[bar]
?
与 sed 相比,tr 在反引号内完美工作:
FOO=`echo "foo[bar]" | tr '[' '-' ` && echo $FOO
返回
foo-bar]
【问题讨论】:
标签: shell sed escaping backticks