正则表达式替换

3
我正在尝试对典型的g++命令行进行一些修改。我试图构造一个正则表达式来查找-o object_filename.o结构。为了测试我的匹配模式,我在sed中启动它,并将空字符串作为替换。但是它并没有按照预期工作,因为它什么也没有删除... $echo "-o toto.o" | sed 's/-o [^ ]+//'
-o toto.o
2个回答

2

太好了。我正在Linux上使用GNU sed。在我的情况下,“-r”似乎是正确的选项。 - yves Baumes
1
是的,-E-r 的别名,但通常为了可移植性最好使用 -E - Chris Seymour

1
如果我理解正确,那么sed -E 's/-o.+?\.o//'应该可以实现你想要的功能:
$ cat file

g++ .. -o object_filename.o some more options
g++ .. -o object1.o some more options
g++ .. -o foo_bar.o some more options

$ sed -E 's/-o.+?\.o//' file

g++ ..  some more options
g++ ..  some more options
g++ ..  some more options

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接