特定のキーワードを含むテキストファイルからすべての行を削除したいと思います。
これまでのところ、私は見つけただけです:
<linecontains>
<contains value="assert"/>
</linecontains>
しかし、これらの行を削除する方法がわかりません。
特定のキーワードを含むテキストファイルからすべての行を削除したいと思います。
これまでのところ、私は見つけただけです:
<linecontains>
<contains value="assert"/>
</linecontains>
しかし、これらの行を削除する方法がわかりません。
filterchain 要素をサポートするタスク、つまり組み込みの Concat、Copy、LoadFile、LoadProperties、Move タスクで、そのフィルターをfilterchainで使用します。
したがって、たとえば、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>