我正在读取一个文件,找到一个匹配项,然后需要在匹配后打印几行我似乎不知道如何在比赛后打印“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
我不知道比赛后怎么打印我现在正在使用某种类型的标志/递增变量和匹配后的“next”,但还无法使其工作。
谢谢你的帮助。
最佳答案
可能是这样的:
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