如何在Ruby中显示字符串内的变量
问题描述:
因此,我有以下代码逐行读取文本文件。每条线以一个返回托架结束。下面的代码输出以下内容:如何在Ruby中显示字符串内的变量
define host {
use servers
host_name ["buffy"]
alias ["buffy"]
address ["buffy"].mydomain.com
}
如何摆脱括号和引号?
File.open('hosts','r') do |f1|
while line = f1.gets
data = line.chomp.split("\n")
File.open("nagios_hosts.cfg", "a") do |f|
f.puts "define host {\n";
f.puts "\tuse servers\n"
f.puts "\thost_name #{data}"
f.puts "\talias #{data}"
f.puts "\taddress #{data}.mydomain.com"
f.puts "\t}\n\n"
end
end
end
答
你可以使用
#{data[0]}
代替#{}数据
这是因为拆分创建一个字符串数组。
但是,如果您确实想要简单地获取没有行尾的行,则可以使用strip方法。
答
#{data[0]}
split
返回数组。
答
如果你的文件是以下
server1
server2
而且要产生这样的文件:
define host {
use servers
host_name server1
alias server1
address server1.mydomain.com
}
define host {
use servers
host_name server2
alias server2
address server2.mydomain.com
}
我会做这样的事情:
output = File.open("output", "w")
File.open("hosts").each_line do |line|
server_name = line.strip
text = <<EOF
define host {
use servers
host_name #{server_name}
alias #{server_name}
address #{server_name}.mydomain.com
}
EOF
output << text
end
output.close
得到它,改变阅读的一行.. data = line.strip – luckytaxi 2009-12-22 17:59:07