1

我有三个文件:Conf.txt、Temp1.txt 和 Temp2.​​txt。我已经完成了正则表达式以从 config.txt 文件中获取一些值。我想放置值(在 Temp1.txt 和 Temp2.​​txt 中同名)并创建另外两个文件,例如 Temp1_new.txt 和 Temp2_new.txt。

例如:在 config.txt 我有一个值说 IP1,并且在 Temp1.txt 和 Temp2.​​txt 中出现了相同的名称。我想创建文件 Temp1_new.txt 和 Temp2_new.txt 替换 IP1 在 Temp1.txt 和 Temp2.​​txt 中说 192.XXX。

如果有人可以帮助我使用 tcl 代码来做同样的事情,我将不胜感激。

4

1 回答 1

2

从提供的信息来看,基本上有两种方法可以做你想做的事:

  • 文件语义感知;
  • 蛮力。

第一种方法是读取源文件,对其进行解析以生成其内容的某种结构化内存表示,然后在替换生成的表示中的相关值后将此内容序列化到新文件。

蛮力方法意味着将源文件的内容视为纯文本(或一系列文本字符串)并在此文本上运行类似regsuborstring replace的内容以生成新文本,然后将其保存到新文件中。

第一种方法通常应该受到青睐,特别是对于复杂的情况,因为它消除了替换无关文本位的任何机会。我的蛮力编码方式更简单(如果没有方便的库来执行此操作,请参见下文),因此适用于一次性脚本。

请注意,对于某些文件格式,有现成的库可用于自动化您需要的内容。例如,可以使用tdom包的XSLT工具来操作 XML 文件,可以使用适当的库修改 INI 样式文件等。

于 2012-07-05T13:23:09.267 回答