我正在尝试在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>
当我这样做时,我得到前置确定,但附加似乎附加到下一行。任何想法如何做前缀和后缀?
答案 0 :(得分:1)
我其实只是想通了。我的后缀是在我的输入的每一行的结尾处的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>