Se podría utilizar ese filtro en una filterchain, en una tarea que soporta el elemento de cadena de filtros, es decir, el built-in de concatenación , Copiar, LoadFile, LoadProperties, mover tareas.
Así que, por ejemplo, copie o mueva el archivo usando una cadena de filtro que contenga el filtro de línea.
Utilice el parámetro negate
en su filtro linecontains
para excluir las líneas que contienen esa cadena.
Ejemplo:
<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>
Antes:
$ cat file.txt
abc
assert
def
assert
ghi assert
jkl
Después:
$ cat file.txt.edit
abc
def
jkl
Para responder a su pregunta de seguimiento en la aplicación a los archivos seleccionados en un directorio:
<copy todir="dest">
<fileset dir="src">
<include name="**/*.txt"/>
</fileset>
<filterchain>
<linecontains negate="true">
<contains value="assert"/>
</linecontains>
</filterchain>
</copy>
gracias, una pregunta más: ¿cómo podría aplicar esto a un directorio completo y verificar ciertos tipos de archivos? por ejemplo, quiero hacer esto para todos los archivos txt, pero no para los archivos jpg, por supuesto. – clamp
Utilice un [conjunto de archivos] (http://ant.apache.org/manual/Types/fileset.html) en la copia para especificar los archivos que desea incluir. – sudocode