1

我正在读取一个文件,找到一个匹配项,然后需要在匹配项之后打印几行。我似乎不知道如何在比赛后打印“n”行。

f = File.open(ARGV[0],'r') 
    f.each_line do |l|
        case l
        when /MATCH/ #Match
            puts NEXT_7_LINES #How do I print the next 7 lines
                    #Would like to print the next 7-12 lines.

        when /DIFF_MATCH/ 
            puts NEXT_4_LINES
        end
    end
f.close

我不确定如何在比赛后打印线条。我现在正在使用某种类型的标志/递增变量和比赛后的“下一个”,但无法让它发挥作用。

感谢您的帮助。

4

1 回答 1

3

也许是这样的:

print_count = 0
f.each_line do |l|
  if print_count > 0
    puts line
    print_count -= 1
  elsif l =~ /MATCH/
    print_count = 7
  elsif l =~ /ANOTHER_MATCH/
    print_count = 4
  end
end
于 2013-07-10T03:39:21.660 回答