Replace regex不适用于sed

Replace regex不适用于sed,regex,sed,Regex,Sed,我试图替换此文件末尾的数字:version=12包含在文件config.file 这是我的剧本: nbr=13 sed -re "s/version=\d+/$nbr/g" config.file 正则表达式似乎没有检测到这个数字 有人知道为什么吗?你可以用 nbr=13 sed -re "s/(version=)[0-9]+/\1$nbr/g" config.file 见 即使您使用的是ERE POSIX正则表达式(通过-r启用),也不能使用类似PCRE的\d数字模式 另外,我在(vers

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

这是我的剧本:

nbr=13
sed -re "s/version=\d+/$nbr/g" config.file
正则表达式似乎没有检测到这个数字

有人知道为什么吗?

你可以用

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

即使您使用的是ERE POSIX正则表达式(通过
-r
启用),也不能使用类似PCRE的
\d
数字模式


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

您可能会在前面添加一个^,仅启用单个替换。让我们来决定哪一个最好。我看不到字符串出现在行首的证据。谢谢你的回答和解释,帮了我很多忙!