用于从文件中删除重复行的 Ant 脚本



我一直试图在其他帖子中找到解决方案,但似乎没有人是准确的。我正在努力寻找从文件中删除重复行的方法。从例如,一个文件RTNameList.txt其内容为

DBParticipant:JdbcDataSource:appdb
DBParticipant:JdbcDataSource:appdb
HttpType:HttpClientConfiguration:Prochttp
HttpType:HttpClientConfiguration:Prochttp

我只想将唯一的行写入另一个文件 RTNameList-Final.txt .请建议使用 Ant 脚本的最佳解决方案。我在下面使用过,但它不起作用。

<loadfile srcfile="${ScriptFilesPath}/RTNameList.txt" property="src.file.head">
  <filterchain>
    <sortfilter/>
    <uniqfilter/>
  </filterchain>
</loadfile>
<echo file="${ScriptFilesPath}/RTNameList-Final.txt">${src.file.head}</echo>

预期输出:文件 RTNameList-Final.txt 应包含的内容为

DBParticipant:JdbcDataSource:appdb
HttpType:HttpClientConfiguration:Prochttp

Ant 不是一种编程语言。下面的示例使用嵌入的 groovy 脚本来处理该文件。

├── build.xml
├── src
│   └── duplicates.txt
└── target
    └── duplicatesRemoved.txt

src/duplicates.txt

DBParticipant:JdbcDataSource:appdb
DBParticipant:JdbcDataSource:appdb
HttpType:HttpClientConfiguration:Prochttp
HttpType:HttpClientConfiguration:Prochttp

目标/重复已删除.txt

DBParticipant:JdbcDataSource:appdb
HttpType:HttpClientConfiguration:Prochttp

构建.xml

<project name="demo" default="build">
  <available classname="org.codehaus.groovy.ant.Groovy" property="groovy.installed"/> 
  <target name="build" depends="install-groovy">
    <taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"/>
    <groovy>
      ant.mkdir(dir:"target")
      def dups = [:]
      new File("target/duplicatesRemoved.txt").withWriter { w ->
        new File("src/duplicates.txt").withReader { r ->
          r.readLines().each {
            if (!dups.containsKey(it)) {
              dups[it] = it
              w.println(it)
            }
          }
        }
      }
    </groovy>
  </target>
  <target name="install-groovy" unless="groovy.installed">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get dest="${user.home}/.ant/lib/groovy.jar" src="http://search.maven.org/remotecontent?filepath=org/codehaus/groovy/groovy-all/2.3.6/groovy-all-2.3.6.jar"/>
    <fail message="Groovy has been installed. Run the build again"/>
  </target>
</project>

相关内容

  • 没有找到相关文章

最新更新