如何逃脱sed中的方形闭合括号

时间:2015-01-15 21:43:21

标签: regex bash sed

我使用grep和sed解析遗留的C代码,当尝试替换方括号时,发生了一些奇怪的事情。

以下代码替换方形开口括号可以正常工作:

$ echo "xyx[xzx]xyx" | sed 's|[\[]| |g'

结果:

xyx xzx]xyx

当我现在将\]添加到要播放的字符串时,为了替换方括号,它也会停止工作:

$ echo "xyx[xzx]xyx" | sed 's|[\[\]]| |g'

现在导致:

xyx[xzx]xyx

据我所知,这是摆脱方括号的正确方法。

我做错了什么?

我在Ubuntu 14.04计算机上运行它。

1 个答案:

答案 0 :(得分:4)

你甚至不需要逃避:

echo "xyx[xzx]xyx" | sed 's|[][]| |g'
xyx xzx xyx

但请注意,此处]然后[的顺序非常重要。