文件内容如下:
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<url>https://host.com/path/another-path/stable-1.630/update-center.json</url>
</site>
</sites>
我尝试了以下方法:
sed -i '' -e "s/stable-\d+.\d+/stable-2.233/g" ${FILE_PATH}
本质上,我的目的是替换“stable-”后面的版本号。然而,它似乎并没有取代文本。
答案1
一种方法可能是让您的正则表达式对版本号不那么“挑剔”。人们可以假设您正在搜索的字符串是stable-
后跟任意数量的非斜杠字符的字符串。然而,由于这个正则表达式本身将包含斜杠,因此使用分隔符变得很方便其他而非表达式/
本身sed
。此示例用作的命令的%
分隔符:sed
s
sed -i '' -e "s%stable-[^/]*%stable-2.233%g" ${FILE_PATH}