簡體   English   中英

替換配置文件中的值

[英]Replacing a value in a config file

我有一個看起來像的文件:

my.githash="asdfsadfdsf"
some.key=234
some.blue=abchello
russia.green="asdfdsf"

我想用最新的git hash vlaue替換密鑰my.githash的字符串。

如何使用ruby更新我的配置文件?

要獲取git hash值,我將使用:

git rev-parse HEAD

使用gsub您可以使用正則表達式匹配項替換字符串。 在您的情況下,這有點棘手,因為您不確定確切的匹配。

因此,您可以使用

string.gsub(/(githash="(.+)")/) { $1.gsub($2, 'NEW_SHA') }

您可以通過運行shell命令來獲取NEW_SHA

sha = `git rev-parse HEAD`
string.gsub(/(githash="(.+)")/) { $1.gsub($2, sha) }

並從文件系統中讀取文件

sha = `git rev-parse HEAD`
content = File.read('/path/to/fike')
content.gsub!(/(githash="(.+)")/) { $1.gsub($2, sha) }
File.write('/path/to/fike', content)

這是一個非常簡單的例子。 您可以進一步優化它。 您也可以使用一個gsub ,但是它將要求您編寫兩次定界符。

content.gsub!(/githash="(.+)"/, %Q{githash="#{sha}"})

另一種(更長,但也許更准確)的方法是編寫一個簡單的解析器,將其加載到哈希中以解析每行(因為各行似乎遵循特定的語法),然后將哈希轉儲回格式化的文件中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM