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 に答える