我需要添加功能以输出找到字符串的整行。所以这是我目前工作的代码。
if type == "asa"
if File.readlines(file).grep(/http server enabled/).any?
$httpserver_failures.push(file)
out.puts "FAILED: does have http enabled"
else
$httpserver_passes.push(file)
out.puts "PASSED: does not have http enabled"
end
elsif type == "ios"
if File.readlines(file).grep(/no ip http server/).any?
$httpserver_failures.push(file)
out.puts "FAILED: does have http enabled"
else
$httpserver_passes.push(file)
out.puts "PASSED: does not have http enabled"
end
end
所以我只需要添加一行来输出它找到的行。我只是不知道语法。
由于
答案 0 :(得分:3)
grep
方法也会占用一个块。因此,我认为你可以写如下:
if type == "asa"
File.readlines(file).grep(/http server enabled/) do |line|
unless line.empty?
$httpserver_failures.push(file)
out.puts "FAILED: does have http enabled"
puts line # output the line
else
$httpserver_passes.push(file)
out.puts "PASSED: does not have http enabled"
end
end
elsif type == "ios"
File.readlines(file).grep(/no ip http server/) do |line|
unless line.empty?
$httpserver_failures.push(file)
out.puts "FAILED: does have http enabled"
puts line # output the line
else
$httpserver_passes.push(file)
out.puts "PASSED: does not have http enabled"
end
end
end