[英]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.