我创建了一个ant目标,它应该删除文件的底线,然后将其回显给另一个名称的文件。我用于目标的代码是:
<loadfile srcfile="/dir/example/file.txt" property="last.line.removed">
<filterchain>
<filterreader classname="org.apache.tools.ant.filters.TailFilter">
<param name="lines" value="-1"/>
<param name="skip" value="1"/>
</filterreader>
</filterchain>
</loadfile>
<echo message="${last.line.removed}" file="/dir/example/file2.txt" append="true"/>
我已经在构建中运行了这个目标,它只是回显原始文件而不是删除底线。
如果有人能告诉我为什么这不起作用或更好的方式,那么我们将非常感激。
答案 0 :(得分:0)
我无法复制这个问题...
运行代码会产生预期的结果(由diff命令演示):
$ ant
$ diff src/file.txt target/file.txt
2d1
< how are you?
项目文件
├── build.xml
├── src
│ └── file.txt
└── target
└── file.txt
<project name="demo" default="build">
<target name="build">
<mkdir dir="target"/>
<loadfile srcfile="src/file.txt" property="last.line.removed">
<filterchain>
<filterreader classname="org.apache.tools.ant.filters.TailFilter">
<param name="lines" value="-1"/>
<param name="skip" value="1"/>
</filterreader>
</filterchain>
</loadfile>
<echo message="${last.line.removed}" file="target/file.txt" append="true"/>
</target>
<target name="clean">
<delete dir="target"/>
</target>
</project>
hello world
how are you?
hello world