john123
john123

Reputation: 589

Override one value in properties file

I have a properties file:

custom.properties

the content of this properties file is:

id=sf2j2345kkklljhlaasfsdfafsf543
name=SOME_NAME

The value of id is a long random string.

I want to make an Ant script to replace/over-write the value of id to another one, I tried with Ant <replace> syntax:

<target name="change-id">
      <replace file="custom.properties" token="id" value="aaa" />
</target>

I run ant change-id , the content of the properties file becomes:

aaa=sf2j2345kkklljhlaasfsdfafsf543
name=SOME_NAME

That's the key "id" get replaced instead of its value. But I need to replace the value to "aaa" , how to achieve this in Ant?

Please do not recommend me to set token to id's random value, because that value is random generated and put there. I only want to over-write the random value of "id" by Ant script, how to achieve this?.

Upvotes: 0

Views: 327

Answers (1)

pepuch
pepuch

Reputation: 6516

You can do it using replaceregexp task. Try to do it like in this example

conf.ini (utf-8)

aaa=sf2j2345kkklljhlaasfsdfafsf543
name=SOME_NAME

build.xml

<project name="regexp.replace.test" default="test">

    <target name="test">
        <replaceregexp file="conf.ini" match="^aaa=.*" replace="aaa=newId" encoding="UTF-8" />
    </target>

</project>

I don't know exactly if this regular expression is correct but this is the way you can do it.

Upvotes: 1

Related Questions