我需要更新文件中的版本号。在文件中,一行包含这样的语义版本号:
foo.bar.blah.blub#10.6.1
现在,我想查找前缀“ blah.blub”以标识正确的行并替换版本号。
我得到以下显然不起作用的信息:
sed -i -e 's/^blah.blub#\d\.\d\.\d$/blah.blub'${VERSION}/$ README.MD
Sed默认情况下使用基本正则表达式,大多数实现(包括您似乎正在使用的GNU实现)都不了解\d
。另外,您的行也不以开头blah.blub
,因此^
它永远不会匹配。以及其他各种问题。
不过,这应该可以满足您的需求:
sed -i -E "/blah\.blub#/s/#.*/#$VERSION/" README.MD
这将#
用的内容替换a之后的文本$VERSION
,但前提是此行包含blah.blub
。现在,是否足以处理您的数据,我不知道,因为您仅向我们显示了这一行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句