在构建过程中,我将文件从一个目录复制到另一个目录,过滤掉一些不必要的文本,如下所示:
<target name="init-files">
<copy todir="${resources}/clean" overwrite="true">
<fileset dir = "${resources}/dirty" />
<filterchain>
<tokenfilter>
<replacestring from="text_to_remove" to="" />
</tokenfilter>
</filterchain>
</copy>
</target>
我想在每个要复制的文件的开头和结尾插入一行文本。我无法使用replacestring
,因为我无法插入令牌 - 源文本文件是在外部生成的。
concat
看起来像答案但是我发现如何将一组文件连接成一个文件(许多源具有单个目标)我没有看到如何将文本添加到每个文件中集合(具有多个目标的固定文本源)。
我很欣赏有关如何实现这一目标的任何想法。
谢谢!
答案 0 :(得分:3)
可以使用您在tokenfilter中已有的replacestring
过滤器链接replaceregex
string filter:
<tokenfilter>
<replacestring from="text_to_remove" to="" />
<filetokenizer/>
<replaceregex pattern="^" replace="PREFIX TEXT${line.separator}" />
<replaceregex pattern="$" replace="${line.separator}SUFFIX TEXT" />
</tokenfilter>
第一个匹配每个文件的开头,第二个匹配结束。