[英]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.