作者:卟媞1亽儚 | 来源:互联网 | 2023-05-26 15:46
我正在解析使用grep和sed的旧版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机器上运行它。
1> anubhava..:
您甚至不需要逃脱:
echo "xyx[xzx]xyx" | sed 's|[][]| |g'
xyx xzx xyx
但是请记住,顺序]
则[
是很重要的位置。
这是因为如果`]`是字符类中的第一个字符,则不需要像[[] abc]`或如图所示的[[] []`