如何控制输出所选文件集中的所有文件?

时间:2016-08-22 22:00:56

标签: ant echo fileset

我刚刚开始使用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>

1 个答案:

答案 0 :(得分:0)

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

以下是使用Bash shell的步骤:

  1. find.sh

  2. 的同一目录中创建名为find.xml的文件
  3. file.sh内放置以下内容(不能在下面的代码中使用${custom.dir}作为参考):

    for f in /Desktop/Files/*; do 
      echo $f;
      ant -f find.xml find;
    done 
    
  4. 这样做是为了遍历files目录中的每个文件,无论扩展名是什么,它都会回显文件名及其位置,然后执行find.xml目标find

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