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 を見つけて 1 行ずつ読み取り、var1 に保持されている値に置き換えます。ファイル全体が検索され、@HOSTNAME のすべてのインスタンスが var1 に置き換えられたら、var2 に対してもう一度開始します。これは、最初に考えたときは速いように思えましたが、行き詰まっています。

何か案は?他のアプローチがある場合は、それらも聞きたいです。

4

1 に答える 1

0

rubyを使用してファイルを置換する方法は実際にはありませんが、少しごまかすことはできます。

両方の置換を同時に行うので、ファイルを2回読み取る必要はありません。これを試して

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 に答える