我想从包含某个关键字的文本文件中删除所有行。
到目前为止,我只发现:
<linecontains>
<contains value="assert"/>
</linecontains>
但我不知道如何删除这些行。
我想从包含某个关键字的文本文件中删除所有行。
到目前为止,我只发现:
<linecontains>
<contains value="assert"/>
</linecontains>
但我不知道如何删除这些行。
您将在filterchain中使用该过滤器,在支持 filterchain 元素的任务中,即内置的 Concat、Copy、LoadFile、LoadProperties、Move 任务。
因此,例如,使用包含 linecontains 过滤器的过滤器链复制或移动文件。
使用过滤器negate
上的参数linecontains
排除包含该字符串的行。
例子:
<project default="test">
<target name="test">
<copy tofile="file.txt.edit" file="file.txt">
<filterchain>
<linecontains negate="true">
<contains value="assert"/>
</linecontains>
</filterchain>
</copy>
</target>
</project>
前:
$ cat file.txt
abc
assert
def
assert
ghi assert
jkl
后:
$ cat file.txt.edit
abc
def
jkl
要回答有关应用于目录中选定文件的后续问题:
<copy todir="dest">
<fileset dir="src">
<include name="**/*.txt"/>
</fileset>
<filterchain>
<linecontains negate="true">
<contains value="assert"/>
</linecontains>
</filterchain>
</copy>
您可以执行外部命令。
我还没有测试过,但是在 UNIX 上你可能会运行这样的东西:
<exec executable="sed">
<arg value="s/assert//" />
<arg value="YOUR_FILE" />
</exec>