使用ant删除文件的底线

时间:2017-07-27 10:01:05

标签: ant

我创建了一个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"/>

我已经在构建中运行了这个目标,它只是回显原始文件而不是删除底线。

如果有人能告诉我为什么这不起作用或更好的方式,那么我们将非常感激。

1 个答案:

答案 0 :(得分:0)

我无法复制这个问题...

实施例

运行代码会产生预期的结果(由diff命令演示):

$ ant
$ diff src/file.txt target/file.txt
2d1
< how are you?

项目文件

├── build.xml
├── src
│   └── file.txt
└── target
    └── file.txt

的build.xml

<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>

的src / file.txt的

hello world
how are you?

目标/ file.txt的

hello world