我必须 JSON 文件。
a.json:
[
{ key1: "foo", key2: "bar"},
{ key1: "foo", key2: "baz"},
{ key1: "bla", key2: "blubb"},
]
Run Code Online (Sandbox Code Playgroud)
b.json:
[
{ key1: "foo", key2: "bar"},
{ key1: "foo", key2: "oof"},
{ key1: "bla", key2: "bla"},
]
Run Code Online (Sandbox Code Playgroud)
我想要的结果是一个数组,其中包含第一个字典的所有条目,这些条目不属于第二个字典的一部分(相当于 SQL 中 DISTINCT 运算符的作用)。所以预期的输出是:
[
{ key1: "foo", key2: "baz"},
{ key1: "bla", key2: "blubb"},
]
Run Code Online (Sandbox Code Playgroud)
我怎样才能使用 来实现这一点jq?
找不到有效的重复项,因此将其发布为答案。
如果使用-s(slurp),则可以使用object1 - object2来获取它们之间的差异:
jq -s '.[0] - .[1]' a b
Run Code Online (Sandbox Code Playgroud)
将输出:
jq -s '.[0] - .[1]' a b
Run Code Online (Sandbox Code Playgroud)