更新时间:2023-08-26 11:20:46
当然。
$ jq -n '[inputs | keys[]] | unique | sort' input.json
[
"a",
"b",
"c",
"d"
]
这里有一个可能执行得更好的选项,因为它不需要将密钥收集到数组中。
$ jq -n 'reduce (inputs | keys[]) as $k ({}; .[$k] = null) | keys' input.json
或者更好:
$ jq -n 'foreach (inputs | keys[]) as $k ({}; .[$k]+=1; if .[$k]==1 then $k else empty end)' input.json
对于较大的文件,您无论如何都希望将其流入,因此使用此变体:
$ jq --stream -n 'foreach inputs[0][-1] as $k ({}; .[$k]+=1; if .[$k]==1 then $k else empty end)' input.json