我试图在ant中做一些小的文件操作。我检索了一个表空间列表,我想用ALTER TABLESPACE加上NOT LOGGED,如下所示:
<loadfile property="zos.prepend.tablespaces" srcFile="${basedir}/zos-tablespaces-DIRTY.txt">
<filterchain>
<!-- Order here is important -->
<prefixlines prefix="ALTER TABLESPACE "/>
<suffixlines suffix=" NOT LOGGED"/>
<trim/>
<replaceregex pattern=".*NAME.*|.*-----.*|.*record.*select.*|^ALTER TABLESPACE$" replace=""/>
<trim/>
<ignoreblank/>
</filterchain>
</loadfile>
<echo file="${basedir}/zos-tablespaces-PREPEND.txt">
${zos.prepend.tablespaces}
</echo>
当我这样做时,我得到了附加内容,但是附加内容似乎附加到下一行。有什么想法怎么做前缀和后缀吗?
我刚刚算出来了。如果在输入的每行末尾的CRLF之后添加后缀行,而不是在之前添加后缀行。所以我只需要在后缀之后清除CRLF。这就是最终成功的方法。现在我只需要让它更简洁一些
<filterchain>
<tabstospaces/>
<prefixlines prefix="ALTER TABLESPACE "/>
<trim/>
<replaceregex pattern=".*NAME.*|.*record.*select.*|.*-----.*|^ALTER TABLESPACE$" replace=""/>
<suffixlines suffix=" NOT LOGGED @"/>
<striplinebreaks/>
<tokenfilter>
<replacestring from="LOGGED @" to="LOGGED @${line.separator}"/>
</tokenfilter>
<tabstospaces/>
<trim/>
<replaceregex pattern="^NOT LOGGED @$" replace=""/>
<tabstospaces/>
<trim/>
<ignoreblank/>
<fixcrlf eol="crlf" eof="add"/>
</filterchain>