【发布时间】:2018-05-28 18:41:18
【问题描述】:
我有一个文件try.txt,看起来像这样:
(SOME_PRINT): [a] content
(SOME_PRINT): [a] [b] content
如果我在文件的行首有这个模式:(SOME_PRINT): [<word>](其中<word> 只是字母和数字的组合),所以我想用(OTHER_PRINT): 替换它。
对于上面的文件,我想找一个命令,它的执行会使文件变成:
(OTHER_PRINT): content
(OTHER_PRINT): [b] content
我尝试运行 sed -r -i 's/^\(SOME_PRINT\)\: \[.*\] /\(OTHER_PRINT\)\: /' try.txt ,得到以下输出:
(OTHER_PRINT): content
(OTHER_PRINT): content
你能解释一下为什么[b] 消失了吗?
【问题讨论】:
-
请注意,sed 不支持非贪婪,但如重复问题的答案中所指定,您可以在这种情况下使用解决方法.. 此外,您可以避免转义 @987654330 @ 通过删除
-r选项