0

我刚开始使用 Ant 脚本,所以我不确定我问的是正确的问题,但它是这样的:

我有一个脚本,假设从指定目录上的单个文件中找到 RegEx 模式并替换它,但我想在控制台上输出所选文件的列表。

我已成功创建脚本来搜索和替换,没有任何问题,并且我已经知道更改的文件数量(不到 5000 个文件)。现在我正在尝试输出文件列表,但控制台中显示的文件数量要少得多(不到 600 个文件)。我不确定是因为文件数量太多而无法在控制台上输出还是我的脚本需要工作

这是我必须输出结果的代码:

    <target name="find">
        <path id="find.path">
            <fileset dir="${custom.dir}">
                <include name="**/*.js"/>
                <include name="**/*.jsp"/>
                <include name="**/*.xml"/>
                <include name="**/*.css"/>
                <include name="**/*.java"/>
                <containsregexp expression="(YEAR|DATE)(?:\s*2016,\s)"/>
            </fileset>
        </path>
        <pathconvert pathsep="${line.separator}--> "             
                property="echo.path.compile"             
                refid="find.path">
        </pathconvert>
        <echo>${echo.path.compile}</echo>
    </target>
4

1 回答 1

0

假设您的 Ant 的 XML 文件find.xml具有您提供的上述代码,而custom.dir您的文件的 XML 文件是/Desktop/Files.

以下是使用 Bash shell 的步骤:

  1. find.sh在您的同一目录中创建一个名为的文件find.xml

  2. 在里面file.sh放置以下内容(您不能在下面的代码中使用${custom.dir}作为参考):

    for f in /Desktop/Files/*; do 
      echo $f;
      ant -f find.xml find;
    done 
    

它的作用是遍历文件目录中的每个文件,无论扩展名是什么,它都会回显文件名及其位置,然后执行find.xmlwith target find

find.sh从终端运行文件,如./find.sh.

于 2016-08-23T14:28:05.867 回答