Я нашел возможное решение. Он использует gvpr, который уже установлен, если у вас есть graphviz (по крайней мере, он был на моей машине).
Вы можете настроить gvpr для чтения файла .dot, следуйте некоторым инструкциям и создать другой файл .dot.
Поэтому я добавил свойство "tag =" TAGfoo TAGgoo TAGsoo ". Возможно, есть более эффективные способы, но, поскольку мне нужно использовать регулярные выражения, это работает достаточно хорошо.
Тогда команда:
gvpr -i 'N[tag=="(*TAGfoo*|*TAGgoo*)"]' filesource.dot >fileproduced.dot
будет принимать все и только те узлы, которые имеют TAGfoo или TAGgoo.
Это можно сделать чище.