我必须和graphviz一起工作。我需要可视化几棵树的图形表示,但无论如何我必须比较两棵树才能看到它们的区别:像这样,我有树 A 和树 B。创建它们的表示并比较它们后,我只需要查看没有共同点的节点。有人告诉我使用 EMF Compare,但不幸的是我不知道如何让这个插件接受 graphviz 的扩展。
面对这份工作有什么建议或任何其他可能的解决方案吗?
问候。
我必须和graphviz一起工作。我需要可视化几棵树的图形表示,但无论如何我必须比较两棵树才能看到它们的区别:像这样,我有树 A 和树 B。创建它们的表示并比较它们后,我只需要查看没有共同点的节点。有人告诉我使用 EMF Compare,但不幸的是我不知道如何让这个插件接受 graphviz 的扩展。
面对这份工作有什么建议或任何其他可能的解决方案吗?
问候。
给定两个.dot
文件a1.dot
:
digraph g1 {
A -> B -> D -> E
A -> C -> E
}
...和a2.dot
:
digraph g2 {
A -> B -> F -> E
A -> C -> F
}
...您可以找到它们之间不同的节点,如下所示:
$ dot -Tplain a1.dot | sed -ne 's/^node \([^ ]\+\).*$/\1/p' | sort >a1.nodes
$ dot -Tplain a2.dot | sed -ne 's/^node \([^ ]\+\).*$/\1/p' | sort >a2.nodes
$ diff a1.nodes a2.nodes
4d3
< D
5a5
> F
我用来从输出中删除每个文件sed
的节点名称列表,将节点按顺序排序,然后用于查找差异。这种方法不会以图形方式显示差异,但在最好的情况下这是一件棘手的事情。.dot
plain
dot
diff