我有一个这样的文件:
(paren)
[sharp]我试着像这样替换:
sed "s/(/[/g" some_file.txt 它工作得很好:
[paren)
[sharp]然后我试着像这样替换:
sed "s/[/(/g" some_file.txt 它给了我一个错误:
sed: 1: "s/[/(/g": unbalanced brackets ([])我找不到任何证据来解释为什么这会出错。为什么[和(的顺序很重要?
非常感谢。
发布于 2016-05-21 02:34:53
它之所以重要,是因为您将用文字字符串替换正则表达式。因此,当在第二个斜杠之后使用时,括号被视为一个字符。当在第一个和第二个斜杠之间使用时,它被视为无效正则表达式的一部分。
因此,在此表达式中,'[‘被视为一个字符:
s/(/[/g
在此表达式中,它不是:
s/[/(/g
https://stackoverflow.com/questions/37353513
复制相似问题