代码之家  ›  专栏  ›  技术社区  ›  yonran

如何在outputfilterchain中替换ant中的newline?

ant
  •  5
  • yonran  · 技术社区  · 14 年前

    cmd1 | xargs cmd2 (还存储来自 cmd1 ${dependencies} ),其中 cmd1 给出用换行符分隔的路径列表。我不知道怎么在蚂蚁身上做这个。

    <project default="main">
        <target name="main">
            <exec executable="echo"
                 outputproperty="dependencies">
                <arg value="closure/a.js&#xa;closure/b.js&#xa;closure/c.js"/>
                <redirector>
                    <outputfilterchain>
                        <replacestring from="${line.separator}" to=" "/>
                        <!-- None of these do anything either:
                        <replacestring from="\n" to=" "/>
                        <replacestring from="&#xa;" to=" "/>
                        <replaceregex pattern="&#xa;" replace=" " flags="m"/>
                        <replaceregex pattern="\n" replace=" " flags="m"/>
                        <replaceregex pattern="${line.separator}" replace=" " flags="m"/>
                        -->
                    </outputfilterchain>
                </redirector>
            </exec>
            <!-- Later, I need to use each file from ${dependencies} as an argument
                 to a command. -->
            <exec executable="echo">
              <!--This should turn into 3 arguments, not 1 with newlines.-->
              <arg line="${dependencies}"/>
            </exec>
        </target>
    </project>
    
    2 回复  |  直到 14 年前
        1
  •  6
  •   martin clayton egrunin    14 年前

    这个过滤器可能对第一部分有用——它假设没有一个文件以空格字符开头。

    <outputfilterchain>
        <prefixlines prefix=" " />
        <striplinebreaks />
        <trim />
    </outputfilterchain>
    

    它在每一行前加上一个空格,然后删除换行符-给出一行,所有文件名用一个空格隔开,但开头有一个空格。所以 trim 是用来切掉的。

        2
  •  2
  •   yonran    14 年前

    谢谢马丁。我在阅读了 filterchain documentation

    <outputfilterchain>
        <tokenfilter delimoutput=" ">
            <!--The following line can be omitted since it is the default.-->
            <linetokenizer/>
        </tokenfilter>
    </outputfilterchain>