Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要匹配条目列表中的字符串,并使用ANT脚本选择匹配字符串后的所有条目_Ant - Fatal编程技术网

要匹配条目列表中的字符串,并使用ANT脚本选择匹配字符串后的所有条目

要匹配条目列表中的字符串,并使用ANT脚本选择匹配字符串后的所有条目,ant,Ant,我有一个文本文件中的条目列表 1.0.1 1.0.2 1.0.5 2.0.3 3.0.4 4.0.0.5 如果输入为1.0.5,则应选择1.0.5之后的所有条目,并将其输入到新的文本文件中。这可以使用ANT脚本完成吗?如果是,怎么做?这里有一种方法 将Ant任务与删除匹配前所有行的任务一起使用 <property name="in.file" value="input.txt" /> <property name="out.fi

我有一个文本文件中的条目列表

1.0.1
1.0.2
1.0.5
2.0.3
3.0.4
4.0.0.5

如果输入为1.0.5,则应选择1.0.5之后的所有条目,并将其输入到新的文本文件中。这可以使用ANT脚本完成吗?如果是,怎么做?

这里有一种方法

将Ant任务与删除匹配前所有行的任务一起使用

<property name="in.file" value="input.txt" />
<property name="out.file" value="output.txt" />

<property name="match.str" value="1.0.5" />

<copy file="${in.file}" tofile="${out.file}">
  <filterchain>
    <tokenfilter>
      <filetokenizer/>
      <replaceregex pattern=".*\n(${match.str})\n"
                    flags="s"
                    replace="\1${line.separator}" />
    </tokenfilter>
  </filterchain>
</copy>

如果不希望输出文件中包含匹配字符串,请更改为

      <replaceregex pattern=".*\n(${match.str})\n"
                    flags="s"
                    replace="" />

将文件的所有行视为一个字符串,因此这种方法不适用于大型文件

如果文件中的行分隔符与承载构建的操作系统中的默认行分隔符不同,您将看到问题


您也可以使用该任务,但这将在适当位置更新文件,而不是写入新文件。

谢谢,它成功了。和replaceregexp也可以通过创建文件的副本来使用。