如果我想从字符串中删除第一个句点及其后面的所有内容,在sed
中我可以例如这样做:替换第n个正则表达式的问题
echo 2.6.0.3-8 | sed 's/\..*//'
输出:
2
但是,如果我想删除第二个时期,一切背后,我想我应该可以做这样的(GNU SED):
echo 2.6.0.3-8 | sed 's/\..*//2g'
然而输出为:
2.6.0.3-8
从手册:
'NUMBER' 只有更换REGEXP的NUMBERth比赛。
我在这里错过了什么?
你错过了它是贪婪的。 '。*'是在吞噬一切,没有第二个匹配。你可以使用'[^。] *'效果好于'。*' – stevesliva