文字列に一致する小さなスクリプトがあります。文字列が複数一致する場合は、カウンタが1つ増えます。文字列が複数回一致する場合は、カウンタを1ずつ増やします。
ファイル内の各ラインパターンと比較され、文字列「テスト」が一致したとき、カウンタは1だけ増加されるべきであり、カウンタが4になった場合、それは文字列「カウンター」を印刷する必要がありdef watch_for(file, pattern)
f = File.open(file,"r")
f.seek(0,IO::SEEK_END)
while true do
select([f])
line = f.gets
if line =~ pattern
counter = 0
counter += 1
if counter == 4
puts counter
end
end
end
watch_for(file, test)
が、カウンタパターンに一致するたびに "0"にリセットされ、if条件は実行されません。これを行う方法はありますか?あなたの助けが大変ありがとうございます。
ヒント: 'while true'の代わりに 'loop do'を使用してください。 – tadman