【问题标题】:How to read a file and write to other file in tcl with replacing values如何通过替换值读取文件并写入tcl中的其他文件
【发布时间】:2012-10-08 12:11:50
【问题描述】:

我有三个文件: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 代码来做同样的事情,我将不胜感激。

【问题讨论】:

  • 与 Tcl 无关,但我刚刚遇到了一个非常有趣的 通用 工具,用于转换具有任意语法的配置文件 -- augeas跨度>

标签: tcl


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2022-07-07
    • 2018-10-17
    • 1970-01-01
    • 2019-11-13
    • 2016-02-25
    • 2021-12-12
    • 2020-01-01
    • 1970-01-01
    • 2017-09-11
    相关资源
    最近更新 更多