1

Conf.txt、Temp1.txt、Temp2.​​txt の 3 つのファイルがあります。config.txt ファイルからいくつかの値を取得するために正規表現を実行しました。値 (Temp1.txt と Temp2.​​txt で同じ名前) を配置し、Temp1_new.txt と Temp2_new.txt という別の 2 つのファイルを作成します。

例: config.txt には IP1 という値があり、同じ名前が Temp1.txt と Temp2.​​txt に表示されます。Temp1.txt と Temp2.​​txt で IP1 を 192.XXX に置き換えるファイル Temp1_new.txt と Temp2_new.txt を作成したいと思います。

誰かが同じことをするためにTclコードで私を助けてくれれば幸いです。

4

1 に答える 1

2

提供された情報から判断すると、基本的に、必要なことを行うには2つの方法があります。

  • ファイルセマンティクスに対応。
  • 強引な。

最初の方法は、ソース ファイルを読み取り、それを解析してそのコンテンツの特定の構造化されたメモリ内表現を生成し、生成された表現で関連する値を置き換えた後、このコンテンツを新しいファイルにシリアル化することです。

ブルートフォース方式とは、ソース ファイルの内容をプレーン テキスト (または一連のテキスト文字列) として扱い、このテキストに対してregsubまたはstring replaceのようなものを実行して新しいテキストを生成し、それを新しいファイルに保存することを意味します。

特に複雑なケースでは、無関係なテキストを置き換える可能性がなくなるため、最初の方法が一般的に優先されます。力ずくの方法でコードを簡単に作成できます(これを行うための便利なライブラリがない場合は、以下を参照してください)。したがって、使い捨てのスクリプトに適しています。

特定のファイル形式には、必要なものを自動化するために使用できる既製のライブラリがあることに注意してください。たとえば、 tdomパッケージのXSLT機能を使用して XML ファイルを操作したり、適切なライブラリを使用して INI スタイル ファイルを変更したりできます。

于 2012-07-05T13:23:09.267 に答える