我有2个文件:
Read.txt:
我的名字是= Joy
我的年龄= 18
Write.txt:
在此粘贴我的名字:
在这里粘贴我的年龄:
所以我应该能够从Read.txt中读取所需位置的名称(Joy)和年龄(18)(它将出现在' ='之后)并将它们写入write.txt成功构建后,在所需位置(':')之后。我需要正则表达式吗?
我们可以使用Ant脚本吗?
答案 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>