我想刪除包含特定關鍵字的文本文件中的所有行。從文件中刪除包含關鍵字的行
到目前爲止,我只找到:
<linecontains>
<contains value="assert"/>
</linecontains>
,但我不知道如何刪除這些行。
我想刪除包含特定關鍵字的文本文件中的所有行。從文件中刪除包含關鍵字的行
到目前爲止,我只找到:
<linecontains>
<contains value="assert"/>
</linecontains>
,但我不知道如何刪除這些行。
你會使用過濾器在filterchain,在支持filterchain元素的任務,即內置的毗連,複製,LoadFile,LoadProperties,移動任務。
例如,使用包含linecontains過濾器的過濾鏈複製或移動文件。
使用linecontains
過濾器上的negate
參數排除包含該字符串的行。
例子:
<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>
謝謝,還有一個問題:我怎麼能把這個應用到整個目錄並檢查某些文件類型?例如,我想要做到這一點所有的txt文件,但不是當然jpg文件。 – clamp
使用副本中的[fileset](http://ant.apache.org/manual/Types/fileset.html)指定要包含的文件。 – sudocode