grepでマッチした後のn行を出力_改訂

前回分。
grepでマッチした後のn行を出力 - うんたらかんたらRuby - Rubyist


よくよく考えたら、複数マッチングする可能性があるので
微修正。

grep_word = (ARGV[0])
out_num = (ARGV[1]).to_i

match_num = 0
File.open('aaa.txt', 'r').each_with_index do |line, i|
  #マッチング処理
  if line =~ /#{grep_word}/
    puts ""
    puts "matching line:#{i}"
    match_num = i
  end
  #マッチング以降を出力
  if match_num != 0
    if i > match_num
      if i <= (match_num + out_num)
        puts line
      else
        #break
      end
    end
  end
end