增加值并保存回文件

时间:2018-11-21 07:07:13

标签: json increment jq

我有一个简单的JSON文件,

{

...
"version": "2.1.0",
"buildNumber": 83

}

我想简单地在文件中将buildNumber加1。其余内容应保持不变。

到目前为止,我想出了什么。

jq -e '.buildNumber + 1' 'package.json' > 'package.json.tmp' && cp 'package.json.tmp' 'package.json'

但是在运行脚本之后,我只剩下了package.json文件中的更新值,该文件只有84。其余的内容都消失了。我该如何解决?

2 个答案:

答案 0 :(得分:0)

首先,要使用的过滤器是:

.buildNumber += 1

第二,正如您显然意识到的那样,使用>覆盖文件是不明智的。考虑是否可以接受的一种选择是使用coreutil的sponge。另一个方法是先重命名输入文件。

答案 1 :(得分:-1)

我只是将两个命令放在下面两行,并且按我的意愿工作了。

jq '.buildNumber += 1' 'package.json' > 'package.json.tmp'
cp 'package.json.tmp' 'package.json'