使用Ruby请求值,将值存储在变量(x)中,逐行读取输入文件,将y替换为x,输出文件

时间:2012-04-26 16:08:53

标签: ruby

我对脚本编写起来很陌生,所以我在学习ruby的过程中仍然学到了很多东西。

我不确定我的头衔有多清楚,所以我会告诉你我的开始。

puts "Enter the hostname in the format [SID-Profile] -->"
var1 = gets

puts "Enter the IP address and Mask in the format [1.2.3.4 255.255.255.0] -->"
var2 = gets

这是我的努力崩溃的地方,我开始怀疑我是否以非常实际的方式解决了这个问题。

我想问一系列问题,在变量中保留问题的答案,然后导入一个文件,在文件中逐行读取@HOSTNAME并将其替换为var1中保存的值。搜索完整个文件并将所有@HOSTNAME实例替换为var1后,再次启动var2。当我第一次想到它时,这似乎很快,但我被卡住了。

有什么想法吗?如果还有其他方法,我也很乐意听到这些。

1 个答案:

答案 0 :(得分:0)

没有办法在使用ruby的文件中进行替换,但是你可以作弊。

我会同时进行两次替换,这样您就不必两次读取文件了。 试试这个

data = IO.readlines("filename")
puts "Enter Hostname"
hostname = gets.chomp
puts "Enter IP"
ip = gets.chomp
data.each do |line|
  line.gsub("@HOSTNAME",hostname)
  line.gsub!("@IPADDRESS",ip)
  puts line
end

这将读取文件并将其打印到屏幕上,以便您可以查看和验证输出。

然后,您可以将脚本的输出定向到新文件,最后将新文件移动到旧文件的位置。