使用 bash 文件替换字符串

Replace a string using bash file

我的 package.json 文件中有这一行:

"version": "5.0.0",

我想用另一个动态值替换 5.0.0。我这样试过:

sed -i "s%5.0.0%5.1.1%g" "package.json" 

但是不好,因为我不知道以前的值是 5.0.0。我应该在这里写一个正则表达式吗?

将 5.6.7 更改为您想要的任何版本。 您可以 grep 或 find -exec 一次更改多个文件。

sed -i -E 's/"version": "([0-9]+(\.[0-9]+)+)",/"version": "5.6.7",/' package.json

您可以使用 backreference:

sed -i -E 's/(^ *?"version". *)[0-9.]+(.*)/ 5.1.1 /g''

保证字符串“版本”的格式与输入的格式相同,您不必重新输入。