我正在使用grep和sed解析come遗留C代码,当尝试替换方括号时,发生了一些奇怪的事情。
以下代码可用于替换方括号:
$ echo "xyx[xzx]xyx" | sed 's|[\[]| |g'
结果:
xyx xzx]xyx
当我现在将\]添加到sed的字符串中,同时替换方括号时,它将停止工作:
$ echo "xyx[xzx]xyx" | sed 's|[\[\]]| |g'
现在的结果是:
xyx[xzx]xyx
据我所知,这是摆脱方括号的正确方法。
我做错什么了?
我在Ubuntu 14.04机器上运行这个。

最佳答案

你甚至不需要逃跑:

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

不过,请记住]然后[的顺序在这里很重要。

08-17 10:01