替换正则表达式不适用于sed

时间:2017-08-08 12:41:23

标签: regex sed

我正在尝试替换此末尾的数字:文件version=12中包含的config.file

这是我的剧本:

nbr=13
sed -re "s/version=\d+/$nbr/g" config.file

正则表达式似乎没有检测到数字。

有人有任何想法吗?

1 个答案:

答案 0 :(得分:3)

您可以使用

nbr=13
sed -re "s/(version=)[0-9]+/\1$nbr/g" config.file

请参阅online demo

即使您使用的是ERE POSIX正则表达式(使用-r启用),您仍然无法使用类似\d数字模式的PCRE。

此外,我在(version=)周围添加了一个捕获组,以便能够使用\1反向引用在替换部分中恢复它。