用于增加文件中数字的脚本

时间:2016-07-14 05:51:31

标签: shell

我有一个如下文件,假设文件名是file1.txt:

s.version      = "11.7.10"

这里我必须将最后一个数字增加1,所以它应该是1 + 1 = 2之类的..

s.version      = "11.7.11"

有没有办法解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我会选择Perl,如下所示:

perl -pe '/s.version/ && s/(\d+)(")/$1+1 . $2/e' file.txt

那说...... “在你找到”s.version“的任何一行上,用最后一个或多个数字替换后面跟一个双引号,不管那些数字加一,双引号”< / em>的

所以,如果你的文件包含这个:

fred
s.version      = "11.7.10"
s.version      = "11.7"
s.version="12.99.99"
frog

你会得到这个:

fred
s.version      = "11.7.11"
s.version      = "11.8"
s.version="12.99.100"
frog

如果您希望Perl就地编辑文件(即覆盖输入文件),可以使用-i选项:

perl -i.orig -pe '/s.version/ && s/(\d+)(")/$1+1 . $2/e' file.txt

然后您的输入文件将被覆盖,但备份保存在file.txt.orig