增加值并保存回文件
Increment value and save back to the file
我有一个像这样的简单 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。其余内容都没有了。我该如何解决这个问题?
首先,要使用的过滤器是:
.buildNumber += 1
其次,您显然已经意识到,使用 > 覆盖文件是不明智的。考虑是否可以接受的一种选择是使用 coreutil 的 sponge
。另一种方法是先重命名输入文件。
我只是将下面的两个命令分成两行,它就像我想要的那样工作。
jq '.buildNumber += 1' 'package.json' > 'package.json.tmp'
cp 'package.json.tmp' 'package.json'
我有一个像这样的简单 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。其余内容都没有了。我该如何解决这个问题?
首先,要使用的过滤器是:
.buildNumber += 1
其次,您显然已经意识到,使用 > 覆盖文件是不明智的。考虑是否可以接受的一种选择是使用 coreutil 的 sponge
。另一种方法是先重命名输入文件。
我只是将下面的两个命令分成两行,它就像我想要的那样工作。
jq '.buildNumber += 1' 'package.json' > 'package.json.tmp'
cp 'package.json.tmp' 'package.json'