我怎么能通过Linux脚本替换文件中的数字?

时间:2017-11-01 08:37:47

标签: linux

字符串下面是一个文件,我需要在Linux下用31.1.5替换版本号31.1.4。我知道应该使用sed,但是怎么样? 有人可以帮忙吗?谢谢!

my-version = "31.1.4";

我需要搜索“my-version =”,然后用新号码替换后一个号码。我不想只更换号码,因为我必须先检查文件中的号码。

另一种情况是将31.1.4以下替换为31.1.5。

#define MY_VERSION "31.1.4"

2 个答案:

答案 0 :(得分:2)

sed "s/31\.1\.4/31\.1\.5/g"用于流编辑

sed -i "s/31\.1\.4/31\.1\.5/g" file.txt for file替换file.txt

请注意,此处.已转发至\.,因为.将与“任何角色”匹配

答案 1 :(得分:1)

您在评论中提出的awk解决方案:

$ cat file
my-version = "31.1.4";
my-version = "31.1.4";
somevar = 33;
my-version = "31.1.4";
$ awk -i inplace -F"=" '/my-version/ { gsub($2, " \"31.1.5\";"); }1' file
$ cat file
my-version = "31.1.5";
my-version = "31.1.5";
somevar = 33;
my-version = "31.1.5";
$