我想将一个文件中的属性替换为另一个文件中的属性。 (我是ruby的新手,阅读有关Ruby和YAML的内容。我有Java背景)
例如
文件1
server_ip_address=$[ip]
value_threshold=$[threshold]
system_name=$[sys_name]
文件2
ip=192.168.1.1
threshold=10
sys_name=foo
ruby脚本应该用它们的实际值替换$ values(我不知道$ []是否是ruby中使用的格式。还有文件1和2必须是YAML文件,还是erb文件?)并生成文件1为:
server_ip_address=192.168.1.1
value_threshold=10
system_name=foo
我在网上搜索了这个,但无法用正确的关键字来表达,以便在google上找到解决方案/指针解决方案/参考资料。如何通过ruby脚本来完成?
由于
答案 0 :(得分:1)
如果您可以切换格式,这应该像以下一样简单:
require 'yaml'
variables = YAML.load(File.open('file2.yaml'))
template = File.read('file1.conf')
puts template.gsub(/\$\[(\w+)\]/) { variables[$1] }
您的模板可以保持原样,但替换文件看起来像:
ip: 192.168.1.1
threshold: 10
sys_name: foo
这使得使用YAML库很容易阅读。