我想比较两个如下所示的json文件:
[
{
"type" : 1,
"children" : {
"nsubj" : {
"role" : "topic",
"POS" : [
"noun"
]
}
},
"role" : "vehicle",
"POS" : [
"noun"
]
},另一个是类似的格式,但两者之间有一些区别,因为一个json文件由3336行组成,而另一个json文件由3724行组成。我想写一个shell脚本,它会逐行比较这两个脚本,无论何时发现差异,都会输出出现差异的行号。
发布于 2013-12-31 09:24:28
只要使用diff即可。就像在
diff --unified file1.json file2.json发布于 2017-05-09 06:42:27
要比较json文件,您应该对它们进行转换,使它们具有相同的键顺序。jq (https://stedolan.github.io/jq/)是这项工作的一个非常好的工具,您可以在其中执行以下操作:
jq -S . fileA.json > fileA_fmt.json
jq -S . fileB.json > fileB_fmt.json然后,您可以使用您喜欢的工具进行文本文件比较。我喜欢用于图形用户界面的kdiff3,或者在纯命令行中只是简单的比较,例如:
diff fileA_fmt.json fileB_fmt.json发布于 2020-11-22 09:19:33
更新一下来自bartolomeon_n的答案,您可以在一行中完成所有这些操作。
diff <(jq -S . fileA.json) <(jq -S . fileB.json)
# or, with nice columns and colours:
diff -y --left-column --color <(jq -S . fileA.json) <(jq -S . fileB.json)https://stackoverflow.com/questions/20850289
复制相似问题