我正在读文件,找到匹配,然后需要在比赛后打印几行。在我的比赛结束后,我似乎无法弄清楚如何打印“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
我不确定如何在比赛后打印线条。我现在正在使用某种类型的标志/递增变量和匹配后的“下一个”,但却无法使其工作。
感谢您的帮助。
答案 0 :(得分: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