2017-06-22 16 views
0

を使用してファイル構造を変更します。リストの末尾に次の形式で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"]; 

どのようにこの問題にアプローチしますか?スクリプトを使用する必要がありますか?私はシェルスクリプトにあまり慣れていません。

+0

理解ライブラリを構文は安全な場所です。たとえば、https://pypi.python.org/pypi/graphviz(注:Python、not shell)を参照してください。 –

+0

@CharlesDuffyドットファイルからグラフオブジェクトを取得できますか? – Narmada

+0

はい、[PythonでDOTファイルを解析する方法](https://stackoverflow.com/questions/28313901/how-to-parse-a-dot-file-in-python)の回答に記載されているように –

答えて

0

Dot構文を認識して、無効な構文を確実に見つけて修正できるようにするのが理想です。試してみることができるDot plugin for IDEAがあります(ファイル内の次の問題に進むにはF2を使用してください)。非常に単純な(しかし、それは、構文を認識しないことから、リスクの高い)のためにあなたがsed使用できる代替品:sedで反転させるよう

sed -i 's/, \]/]/' your-file 

を、一般的なパターンは次のようになります。

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

これは最後に余分な "、"を削除するだけです。それはリストを逆にしませんか? – Narmada

+0

ああ、私は逆転要件を見ていませんでした。逆参照( '\ 1'など)で' sed'を使うことでこれを行うことができます。 – l0b0

+0

これについて詳しく説明できますか?私は非常にsedに精通していない – Narmada

関連する問題