使用Ant脚本

时间:2017-09-18 09:31:25

标签: ant

我有2个文件:

Read.txt:

  

我的名字是= Joy

     

我的年龄= 18

Write.txt:

  

在此粘贴我的名字:

     

在这里粘贴我的年龄:

所以我应该能够从Read.txt中读取所需位置的名称(Joy)和年龄(18)(它将出现在' ='之后)并将它们写入write.txt成功构建后,在所需位置(':')之后。我需要正则表达式吗?

我们可以使用Ant脚本吗?

1 个答案:

答案 0 :(得分:0)

在read.txt文件中使用无效的属性名称,您将不得不做一些更复杂的事情。

使用loadfile任务,您可以加载文件的全部内容并根据需要对其进行格式化:

<target name="write-to-file">
    <loadfile srcfile="read.txt" property="output">
        <filterchain>
            <tokenfilter>
                <replacestring from="My name is=" to="Paste my name here:" />
                <replacestring from="My age is=" to="Paste my age here:" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <echo file="write.txt" message="${output}" />
</target>

如果您需要获取名称和年龄的特定值(可能稍后在脚本中使用),则必须加载两次并过滤所需的部分:

<target name="load-lines">
    <loadfile srcfile="read.txt" property="my.name">
        <filterchain>
            <linecontains>
                <contains value="My name is" />
            </linecontains>
            <tokenfilter>
                <replacestring from="My name is=" to="" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <loadfile srcfile="read.txt" property="my.age">
        <filterchain>
            <linecontains>
                <contains value="My age is" />
            </linecontains>
            <tokenfilter>
                <replacestring from="My age is=" to="" />
            </tokenfilter>
        </filterchain>
    </loadfile>

    <echo file="write.txt" message="Paste my name here:${my.name}${line.separator}Paste my age here:${my.age}" />
</target>