user1340582
user1340582

Reputation: 19699

Retrieve all keys from properties file using Ant

I have a properties file containing key/value pairs:

key1=value1
key2=value2
...

How can I retrieve a list of all keys in this file using Ant?

Upvotes: 0

Views: 414

Answers (1)

Rebse
Rebse

Reputation: 10377

Use loadfile with a filterchain, f.e. :

<project>

  <!-- given some file with :
       key=value
       key=someothervalue
        ...
   -->

   <loadfile property="keysonly" srcfile="some.properties">
     <filterchain>
       <tokenfilter>
           <replaceregex pattern="(.+)=.+" replace="\1"/>
        </tokenfilter>
      </filterchain>
    </loadfile>

    <echo>${keysonly}</echo>

</project>

If you need the keys in special form, f.e. comma separated use something like :

<loadfile property="keysonly" srcfile="some.properties">
  <filterchain>
    <tokenfilter>
      <!-- use some delimiter f.e. '###' -->
      <replaceregex pattern="(.+)=.+" replace="\1###"/>
    </tokenfilter>
      <!-- get rid of linefeeds -->
     <striplinebreaks/>
    <tokenfilter>
      <!-- replace delimiter '###' with ',' -->
      <replaceregex pattern="###" replace="," flags="g"/>
    </tokenfilter>
    <tokenfilter>
      <!-- replace dangling ',' -->
      <replaceregex pattern=",$" replace=""/>
    </tokenfilter>
  </filterchain>
</loadfile>

Upvotes: 3

Related Questions