【发布时间】:2016-11-10 11:53:25
【问题描述】:
我想区分两个 JSON 文本文件。不幸的是,它们是按任意顺序构建的,所以当它们在语义上相同时我会得到差异。我想使用 jq (或其他)以任何类型的完整顺序对它们进行排序,以消除仅由于元素排序引起的差异。
--sort-keys 解决了一半的问题,但它不能对数组进行排序。
我对jq一无所知,不知道如何编写一个保留所有数据的jq递归过滤器;任何帮助将不胜感激。
我意识到逐行“差异”输出不一定是比较两个复杂对象的最佳方法,但在这种情况下,我知道这两个文件非常相似(几乎相同)并且逐行差异对我来说很好。
Using jq or alternative command line tools to diff JSON files 回答了一个非常相似的问题,但不打印差异。另外,我想保存排序后的结果,所以我真正想要的只是一个对 JSON 进行排序的过滤程序。
【问题讨论】: