如何在使用令牌>文件时强制 Ant 忽略空白行

  • 本文关键字:Ant 空白 文件 令牌 ant
  • 更新时间 :
  • 英文 :


如何在使用标记->文件读取文件时强制Ant忽略空行

更准确地说:

${dir.config}中的scripts.cfg可能包含中同名文件中的行/config/文件夹。我使用这个脚本来确定一个文件的行/字符串是否存在于另一个文件中。

但是:如果一个文件的内容在另一个文件中不存在,就不应该有任何差异。尽管如此,${ant.refid:to_be_remove.list}返回了许多差异,这可能是由于其中一个文件(input.list文件)包含空行,并且无论出于何种原因,它都会将这些差异标记为差异

我尝试过使用loadfile和tokenfilter,但都没有成功。按照现在的方式,它实际上删除了正确的行(请参阅我在最后注释的代码),但它也删除了所有的空行,使文件更难阅读。此外,我希望能够通过使用条件资源计数结果来确定是否必须合并文件(=行数)。遗憾的是,这个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>

尝试:

<loadfile property="mail.recipients" srcFile="recipientlist.txt">
      <filterchain>
        <striplinebreaks/>
      </filterchain>
</loadfile>

您可以尝试更改加载文件(包含错误数据的文件)的方式。请参阅下文。因此,<resources>将仅具有修剪的线。

<loadfile srcfile="scripts_bad.cfg" property="invalid.list">
        <filterchain>
            <trim>
            </trim>
        </filterchain>
    </loadfile>

相关内容

  • 没有找到相关文章

最新更新