繁体   English   中英

使用Ant在多个文件上运行Perl脚本

[英]Running perl script on multiple files using Ant

我有一组要在其上运行perl脚本的文件。 问题是它们不在同一目录中。 实际上,它们都是有序但复杂的目录层次结构的一部分。

我写了一个Bash脚本来实现我想要的功能:

if [ ${HOME:+1} ]; then
    for A in ${HOME}/a/b/*; do
        for B in ${A}/c/*; do
            for C in ${B}/*; do
                if [ -f $C/somefile ]; then
                    some_perl_script $C/somefile;
                fi
            done;
        done;
    done;
fi

这样就可以了,而且不太复杂。 但是,我需要使用Ant才能使用该功能。 当然,我可以从Ant调用该脚本,但是我想知道是否首先要有Ant来执行它,这似乎是一种更简单的处理方式。 本质上,我想要类似于以下build.xml的内容:

<project name="application" basedir=".">
    <target name="apply_to_all">
      <exec executable="perl" dir="${basedir}">
        <arg value="some_perl_script.pl"/>
        <arg value="a/b/**/c/**/**/somefile"/>
      </exec>
    </target>
</project>

我发现了这个帖子 但是,我想不使用ant-contrib。

使用apply任务在嵌套文件集中包含的所有文件上调用perlscript:

<apply executable="perl">
  <arg value="-your args.."/>
  <fileset dir="/some/dir">
    <patternset>
      <include name="**/*.pl"/>
    </patternset>
  </fileset>
  <fileset refid="other.files"/>
</apply>

(可选)使用属性parallel = true,表示仅运行一次命令,并将所有文件作为参数附加。 如果为false,则将对每个文件执行一次命令,默认= false => 有关应用请参见Ant手册
您可以使用包含/排除模式和一个或多个文件集。 如果您在所有perl脚本中都可以使用**/*.pl

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM