2013-03-14 38 views
0

我有一個屬性文件:重寫一個值在屬性文件

custom.properties

此屬性文件的內容是:

id=sf2j2345kkklljhlaasfsdfafsf543 
name=SOME_NAME 

的值id是一個很長的隨機字符串。

我想打一個螞蟻腳本替換/過寫id到另一個值,我試着用螞蟻<replace>語法:

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

我運行ant變化-ID,屬性文件的內容變成:

aaa=sf2j2345kkklljhlaasfsdfafsf543 
name=SOME_NAME 

這是關鍵「id」會被替換,而不是它的價值。但我需要將值替換爲「aaa」,如何在Ant中實現這一點?

請不要推薦我設置tokenid的隨機值,因爲該值是隨機生成的,並放在那裏。我只想用Ant腳本覆蓋隨機值「id」,如何實現?

回答

1

你可以使用replaceregexp任務。儘量做到像在這個例子中

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> 

我完全不知道這正則表達式是正確的,但這是你可以做到的方式。

+0

似乎正則表達式不正確,我試過了,我的屬性文件的內容沒有改變。 – john123 2013-03-14 11:13:49

+0

你的文件在哪個編碼中被編碼?正如我寫的,我已經在utf-8上測試過它,它工作。這並不重要,它不起作用。這個想法是你應該使用''任務來改變文件中的一些奇怪的文本,比如'sdgf346tergrth'。正則表達式是這類問題的最佳解決方案。 – pepuch 2013-03-14 11:59:32

+0

嗨,我從匹配=「^ aaa =。*」更改爲匹配=「aaa =。*」後,它可以工作。問題是關於正則表達式中的「^」。 – john123 2013-03-14 12:13:48