在文件中搜索特定字符串并替换该值

时间:2018-04-30 20:13:12

标签: ruby

我是红宝石的新手,并且正在为一些看起来非常微不足道的东西挠挠脑袋。我试图在文件中搜索特定的字符串,并用新值替换该值。这就是我所拥有的:

"{\"a\": \"b\", \"a\":true,\"c\":[\"field_3 string 1\",\"field3 string2\"]}"

文件file = open('file.txt') { |f| f.grep(/release/) } 的内容如下:

file.txt

我在数组中获得上述行的输出如下:

  

[“发布:0.0.4 \ n”]

如何将上述文件中此行的值更改为新版本,如下所示:

develop: 0.0.0
release: 0.0.4
test: 0.0.0

1 个答案:

答案 0 :(得分:0)

根据@tadman的上述建议,我能够按照以下方式开展工作:

require 'yaml'

file = YAML.load_file('file')
file["release"] = "#{new_version}"
file.open('file', 'w') { |f| YAML.dump(file, f) }