Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Ant就地筛选文件?_Ant - Fatal编程技术网

使用Ant就地筛选文件?

使用Ant就地筛选文件?,ant,Ant,我有一个文件目录,我想使用ApacheAnt(Linux上的1.7.1版)对其执行“就地”字符串过滤 例如,假设在目录mydir中,我有文件foo、bar和baz。进一步假设正则表达式OLD([0-9])的所有出现都应更改为NEW\1,例如OLD2→ 新建2。(请注意,replaceAnt任务不起作用,因为它不支持正则表达式筛选。) 可以使用以下Bash命令创建此测试情况(ant将在当前目录中运行,即mydir的父目录): 以下是我第一次尝试使用Ant进行过滤: <?xml version

我有一个文件目录,我想使用ApacheAnt(Linux上的1.7.1版)对其执行“就地”字符串过滤

例如,假设在目录
mydir
中,我有文件
foo
bar
baz
。进一步假设正则表达式
OLD([0-9])
的所有出现都应更改为
NEW\1
,例如
OLD2
→ <代码>新建2。(请注意,
replace
Ant任务不起作用,因为它不支持正则表达式筛选。)

可以使用以下Bash命令创建此测试情况(ant将在当前目录中运行,即
mydir
的父目录):

以下是我第一次尝试使用Ant进行过滤:

<?xml version="1.0"?>
<project name="filter" default="filter">
    <target name="filter">
        <move todir="mydir">
            <fileset dir="mydir"/>
            <filterchain>
                <tokenfilter>
                    <replaceregex pattern="OLD([0-9])" replace="NEW\1" flags="g"/>
                </tokenfilter>
            </filterchain>
        </move>
    </target>
</project>
第一次尝试(没有临时文件)可以正常工作吗?

请参阅任务:


或任务:



谢谢,但我的问题不完整。当我写这个问题时,我“简化”了我的生产代码太多。我忽略了指定正则表达式过滤的需要,replace似乎不支持正则表达式过滤(如果我错了,请纠正我!)。您在不需要正则表达式的情况下给出了一个很好的答案。在这种情况下,请参阅可选的replaceregexp任务:可选任务!天才!在我的一生中,我可能已经看过两次蚂蚁的可选任务了。完全忘了他们在那里。谢谢请使用replaceregexp任务添加新答案,或编辑此答案,我将接受它。在这里,我将使您更容易(注意标记=“g”以捕获所有事件):
<?xml version="1.0"?>
<project name="filter" default="filter">
    <target name="filter">
        <move todir="mydir">
            <fileset dir="mydir"/>
            <filterchain>
                <tokenfilter>
                    <replaceregex pattern="OLD([0-9])" replace="NEW\1" flags="g"/>
                </tokenfilter>
            </filterchain>
        </move>
    </target>
</project>
<?xml version="1.0"?>
<project name="filter" default="filter">
    <target name="filter">
        <move todir="mydir">
            <globmapper from="*" to="*.filtered"/>
            <fileset dir="mydir"/>
            <filterchain>
                <tokenfilter>
                    <replaceregex pattern="OLD([0-9])" replace="NEW\1" flags="g"/>
                </tokenfilter>
            </filterchain>
        </move>
        <move todir="mydir">
            <globmapper from="*.filtered" to="*"/>
            <fileset dir="mydir"/>
        </move>
    </target>
</project>
<replace 
   dir="mydir" 
   includes="foo, bar, baz">
   <replacefilter token="OLD" value="NEW" />
</replace>
<replaceregexp
    file="${src}/build.properties"
    match="OldProperty=(.*)"
    replace="NewProperty=\1"
    byline="true"/>