在 Shell 脚本中使用 Jq 比较两个 JSON 文件并从文件输出不匹配的值
Compare two JSON file and output unmatched values from a file using Jq in Shell script
如何从 JSON 文件中输出与另一个 JSON 文件不匹配的对象。例如,
文件 1:
[
{
"name": "ABC",
"age": "23",
"address": "xyz"
},
{
"name": "DEF",
"age": "24",
"address": "pqr"
}
]
文件 2:
[
{
"name": "ABC",
"age": "23",
"address": "xyz"
},
{
"name": "GHI",
"age": "24",
"address": "pqr"
}
]
我想要 file2 的输出与 file1 不匹配。示例:
输出文件:
[
{
"name": "GHI",
"age": "24",
"address": "pqr"
}
]
我希望使用 Jq 在 shell 脚本中实现。
jq 减号运算符正是您所需要的。只需使用 --slurpfile
将两个文件都放入变量中:
jq -n --slurpfile file1 file1.json --slurpfile file2 file2.json '$file2[0] - $file1[0]'
如何从 JSON 文件中输出与另一个 JSON 文件不匹配的对象。例如,
文件 1:
[
{
"name": "ABC",
"age": "23",
"address": "xyz"
},
{
"name": "DEF",
"age": "24",
"address": "pqr"
}
]
文件 2:
[
{
"name": "ABC",
"age": "23",
"address": "xyz"
},
{
"name": "GHI",
"age": "24",
"address": "pqr"
}
]
我想要 file2 的输出与 file1 不匹配。示例:
输出文件:
[
{
"name": "GHI",
"age": "24",
"address": "pqr"
}
]
我希望使用 Jq 在 shell 脚本中实现。
jq 减号运算符正是您所需要的。只需使用 --slurpfile
将两个文件都放入变量中:
jq -n --slurpfile file1 file1.json --slurpfile file2 file2.json '$file2[0] - $file1[0]'