我正在使用Ant ReplaceRegExp任务来替换超过10,000个文件中的文本。每个文件都有多个我需要执行的搜索/替换模式。截至目前,有多个块,每个块的文件集都是“**/*。java”。Ant ReplaceRegExp任务 - 每个文件有多个替换?
当我搜索/替换的东西列表增长时,这需要永远运行,因为它将在10k文件上执行ReplaceRegExp#1,然后在10k文件上执行ReplaceRegExp2,等等。我已经有大约15个ReplaceRegExp块,所以我的任务已经花了大约45分钟。
有没有办法获得它,所以每个文件只能处理/访问一次,它执行所有15+我的正则表达式搜索/替换的文件,而不是文件必须处理15+个别时间?
在本质上,寻找的东西,在逻辑上是这样的:
<replaceregexp
match="firstmatch"
replace="firstraplce"
match="secondmatch"
replace="secondreplace"
etc..
byline="true">
<fileset dir=".">
<include name="**/*.java"/>
</fileset>
</replaceregexp>
这显然无效的XML,但是从概念上显示了我要找的。现在我使用2组 - 一组用于“firstmatch/firstreplace”和一组用于“secondmatch/secondreplace”的文件。
谢谢。
这将返回一个错误:** tokenfilter不支持嵌套的“replaceregexp”元素** – Heinz
@ Heinz感谢您指出这个错误,这是一个错字...我纠正了这个例子,现在它可以工作... –