我开始玩jq,现在当我在与输入的每个对象进行交互时尝试增加字段值时卡住了。
输入文件具有:
{"a" : "test1", "b" : 0}
{"a" : "test2", "b" : 0}
{"a" : "test3", "b" : 0}
PS:没有数组,每行只有1个对象。
所需的输出:
{"a" : "test1", "b" : 0}
{"a" : "test2", "b" : 1}
{"a" : "test3", "b" : 2}
我发现了几个例子,展示了如何处理数组,但没有一个像这样。
谢谢!
答案 0 :(得分:2)
jq 1.5具有inputs
,这为有效的解决方案打开了大门:
jq -nc '
foreach inputs as $x (-1; .+1;
. as $n | $x | .["b"] = $n)' stream.json
{"a":"test1","b":0}
{"a":"test2","b":1}
{"a":"test3","b":2}
答案 1 :(得分:0)
找到了:)
$ cat input.json |
jq -sc 'reduce range(0,length) as $i ( .; .[$i].b = ($i+1)) |.[]'
{"a":"test1","b":1}
{"a":"test2","b":2}
{"a":"test3","b":3}