使用令牌-> 文件读取文件时,如何强制 Ant 忽略空行?
更准确地说:
${dir.config}中的 scripts.cfg 可能包含来自./config/文件夹的同名文件中的行。我正在使用这个脚本来确定一个文件的行/字符串是否存在于另一个文件中。
但是:如果一个文件的内容不存在于另一个文件中,则不应有任何差异。尽管如此,尽管${ant.refid:to_be_removed.list}返回了许多差异,这可能是由于其中一个文件(input.list 之一)包含空行 -无论出于何种原因,它确实将这些文件标记为差异。
我尝试过使用 loadfile 和 tokenfilter,但没有成功。现在它实际上设法删除了正确的行(参见我在最后注释掉的代码),但它也删除了所有空白行,使文件更难阅读。此外,我希望能够通过使用条件和resourcecount -result 来确定是否必须合并文件(= 行数)。可悲的是,这个 resourcecount-Id 不是 0,尽管除了空白行之外没有区别。
任何帮助是极大的赞赏!感谢您的时间!
<target name="removeScriptList" description="removes script entries">
<tokens id="input.list">
<file file="${dir.config}/scripts.cfg"/>
</tokens>
<tokens id="invalid.list">
<file file="./config/scripts.cfg"/>
</tokens>
<resourcecount property="to_be_removed.list.lines" count="0">
<intersect id="to_be_removed.list">
<resources refid="input.list"/>
<resources refid="invalid.list"/>
</intersect>
</resourcecount>
<difference id="clean.list">
<resources refid="input.list"/>
<resources refid="to_be_removed.list"/>
</difference>
<pathconvert property="clean.prop" refid="clean.list"
pathsep="${line.separator}"/>
<echo>${to_be_removed.list.lines}</echo>
<echo>${ant.refid:input.list}</echo>
<!--<echo level="info" message="Creating backup scripts.cfg"/>
<copy file="${dir.config}/scripts.cfg" tofile="${dir.config}/scripts.cfg.bak" />
<echo file="${dir.config}/scripts.cfg">${clean.prop}</echo>-->
</target>