我有一个如下文件,假设文件名是file1.txt:
s.version = "11.7.10"
这里我必须将最后一个数字增加1,所以它应该是1 + 1 = 2之类的..
s.version = "11.7.11"
有没有办法解决这个问题。提前谢谢。
答案 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