Si potrebbe utilizzare tale filtro in un filterchain, in un compito che sostiene l'elemento filterChain, vale a dire l'in-built Concat , Copia, Carica file, Carica proprietà, Sposta attività.
Quindi, ad esempio, copiare o spostare il file utilizzando una filterchain contenente il filtro linecontains.
Utilizzare il parametro negate
sul filtro linecontains
per escludere le righe contenenti quella stringa.
Esempio:
<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>
Prima:
$ cat file.txt
abc
assert
def
assert
ghi assert
jkl
Dopo:
$ cat file.txt.edit
abc
def
jkl
Per rispondere alla tua domanda followup su come applicare al file selezionati in una directory:
<copy todir="dest">
<fileset dir="src">
<include name="**/*.txt"/>
</fileset>
<filterchain>
<linecontains negate="true">
<contains value="assert"/>
</linecontains>
</filterchain>
</copy>
grazie, un'altra domanda: come posso applicare questo a un'intera directory e verificare determinati tipi di file? per esempio voglio farlo a tutti i file txt ma non ai file jpg, naturalmente. – clamp
Utilizzare un [set di file] (http://ant.apache.org/manual/Types/fileset.html) nella copia per specificare i file che si desidera includere. – sudocode