0

总的来说,我对脚本编写还很陌生,所以在学习 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。当我第一次想到它时,这似乎很快,但我被卡住了。

有任何想法吗?如果还有其他方法,我也很想听听。

4

1 回答 1

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

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

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

于 2012-04-26T16:43:46.057 回答