如何读取文件并使用替换值写入tcl中的其他文件

时间:2012-07-05 12:31:05

标签: tcl

我有三个文件: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.X.X.X。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

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

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