我有一个像这样的 GraphViz 文件
graph {
edge [arrowhead = none]
A -> B
B -> C
B -> D [ label="foobar" ];
C -> A
}
我想知道有多少个节点,例如在这种情况下(A,B,C,D) 4. 当我坚持使用 1 个字母节点时,我使用这样的脚本
grep -- -\> graph.gv | grep -o . | sort | grep [A-Z] | uniq | wc -l
但如果我需要使用多字母节点,那将失败。
理想情况下,我会有一些匹配的东西
match $a -> $b ; echo $a\n $b\n | uniq | wc -l
但我不知道如何通过 sed/grep/awk 来做到这一点……无论哪种效果最好