我有三个文件: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代码来做同样的事情,我感激不尽。
答案 0 :(得分:2)
从提供的信息来看,基本上有两种方法可以做你想做的事情:
第一种方法是读取源文件parse以生成其内容的某种结构化内存中表示,然后在替换生成的相关值后将此内容序列化为新文件表示。
暴力方法意味着将源文件的内容视为纯文本(或一系列文本字符串),并在此文本上运行regsub
或string replace
之类的内容以生成新文本然后保存到新文件。
第一种方式通常应该受到青睐,特别是对于复杂的情况,因为它消除了替换不相关的文本位的任何机会。蛮力的方式我可以更简单地编写(如果没有方便的库来执行此操作,请参见下文),因此适用于丢弃脚本。
请注意,对于某些文件格式,有现成的库可用于自动化您需要的内容。例如,XSLT包的tdom工具可用于操作XML文件,可以使用appropriate library等修改INI风格的文件。