Python 使用脚本修改文件结构

Python 使用脚本修改文件结构,python,shell,file,Python,Shell,File,我有一个文件,比如f1,格式如下: digraph G { rankdir=TB; node [style="filled", ]; 2 [label="Decl n1", fillcolor="#FFEFD5", shape=box, ]; 3 [label="In1", fillcolor="#6495ED", shape=box, ]; 4 [label="Decl n2", fillcolor="#FFEFD5", shape=box, ]; 5 [label="

我有一个文件,比如f1,格式如下:

digraph G {
  rankdir=TB;
  node [style="filled", ];
  2 [label="Decl n1", fillcolor="#FFEFD5", shape=box, ];
  3 [label="In1", fillcolor="#6495ED", shape=box, ];
  4 [label="Decl n2", fillcolor="#FFEFD5", shape=box, ];
  5 [label="In2", fillcolor="#6495ED", shape=box, ];
  ...........

  edge [dir=back, ];
  3 -> 2 [color="#000000", style="dotted", ];
  2 -> 3 [color="#000000", style="dotted", ];
  ...........
  }
我需要修改它,使每个列表都被颠倒,并且列表末尾的“,”应该被删除。例如,输出格式应如下所示:

2 [shape=box, fillcolor="#FFEFD5", label="Decl n1"];

我如何处理这个问题?我必须使用脚本吗?我不太熟悉shell脚本

理想情况下,您应该使用了解点语法的工具,以便可靠地查找和修复无效语法。有一个可以尝试的问题(使用F2转到文件中的下一个问题)。对于非常简单(但有风险,因为它不支持语法)的替换,您可以使用
sed

sed -i 's/, \]/]/' your-file
对于使用
sed
倒车,一般模式为:

sed -i 's/\(first-part\)\(second-part\)/\2\1/' your-file

理解语法的库是安全的起点。例如,请参见(注意,Python,而不是shell)。@CharlesDuffy是否能够从点文件获取图形对象?是的,正如@CharlesDuffy的答案中所述,这很有帮助。谢谢这只会删除结尾处的额外“,”。它没有反转列表?哦,我没有看到反转要求。您可以通过使用带有反向引用(
\1
等)的
sed
来实现这一点。您能详细说明一下吗?我对SED不太熟悉,这似乎不起作用。第一部分是什么,第二部分是什么?为
-i
提供的语法使其在某种程度上特定于GNU sed(可以像在MacOS上一样使用BSD
sed
,方法是传递一个备份文件扩展名参数)。