如果存在特定字,则批量文件替换整行

时间:2013-07-10 10:46:57

标签: batch-file replace

我有一个像

这样的文件
//output:One line,file info always
-hF1
+ffn
-"format=%(%f %l%): Error -> %t %n %m"

//Do not break lines
-width(0,0)

我想要做的是从文本文件中读取文本,并用另一行替换搜索文本所在的完整行。

实施例: 上述文件的输出应该像

    //output:One line,file info always
    -hF1
    +ffn
    //See below line is changed
    -"format=<message><file>%f</file> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc></message>"<desc>%m</desc></message>"

    //Do not break lines
    -width(0,0)

在这里,我在文本文件中搜索了“format”字样,并替换了整行。

1 个答案:

答案 0 :(得分:0)

使用此批处理文件:repl.bat - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855 这个命令在这里工作。 input.txt和output.txt是文件,\ x22表示引用。 BTW你的替换命令有不平衡的报价。正在搜索的字符串在该行的任何位置都是format=

type input.txt|repl "^.*format=.*" "-\x22format=<message><file>%f</file> <line>%l</line> <type>%t</type> <code>%n</code> <desc>%m</desc></message>\x22<desc>%m</desc></message>\x22" mx >output.txt