我有一个想要修改特定值的json,但是终端总是显示带有修改后值的json,但实际上并不会更改特定文件中的值。样本json:
{ name: 'abcd', age: 30, address: 'abc' }
我想更改文件本身中的address的值,但到目前为止,我一直无法更改。我尝试使用:
jq '.address = "abcde"' test.json
但这没用。有什么建议?
AFAIK jq不支持就地编辑,因此您必须先重定向到一个临时文件,然后再用它替换原始文件,或者使用spongemoreutils包中的实用程序,如下所示:
jq
sponge
jq '.address = "abcde"' test.json|sponge test.json
还有其他“重定向到相同文件”的技术,例如,将输出保存在变量中,例如“ Unix&Linux StackExchange”是一个很好的起点,如果您想了解更多信息。