У меня есть файл журнала test_list.txt
, который выглядит следующим образом:
Processing SampleDocumentController#index (for 101.101.101.101 at 2020-12-12 12:00:00) [POST]
Session ID: sdfgs923jks0dm23mlasf3da9asfjvyur
Parameters: {"format"=>"xml", "controller"=>"sample_document", "q"=>"last_updated_at", "action"=>"index"}
Completed in 0.00529 (189 reqs/sec) | Rendering: 0.00007 (1%) | DB: 0.00126 (23%) | 200 OK [https://www.bars.com/sample/sample_document.lmx?]
У меня есть регулярное выражение для захвата метода и идентификатора сеанса файла журнала:
regex = /\[([A-Z]+)\]\D+([a-zA-Z0-9]{32}$)/i
Когда я запускаю его по отдельности, он работает нормально и возвращает захваченную строку "POST"
и "sdfgs923jks0dm23mlasf3da9asfjvyur"
.Однако со следующим сценарием test.rb
:
File.open("test_list.txt").each do |li|
if !li.nil?
x = li.match(regex)
if !x.nil?
a, b = x.captures
p a
p b
end
end
end
Запуск ruby test.rb
в командной строке ничего не печатает.
Есть идеи, почему он не работает со сценарием?