我想搜索并在日志文件中查找文件中包含的特定信息,并打印出整行例如,.log文件中的第32行是:
2019-08-07 15:21:09.783 'lineid' -> 'DEU.DTAG.NBGNE00111'
我希望打印出包括单词lineid的每一行。如果有人可以帮助我解决我的问题,我将不胜感激。谢谢
我对ruby和regex还是很陌生,所以我尝试通过互联网搜索某些内容。
File.open("/Users/filip/Documents/Testcases/NG-ART_TC1054921_MKS+Results1/1054921_1042510_2242_TID-2123/TC1042510-TID2123-sequencer.log", "r") do |file|
for line in file.readlines().include? "lineid"
puts line
end
end
我回来的只是
/Users/filip/Documents/cucumber/features/features/step_definitions/lineid.rb:7: syntax error, unexpected end-of-input, expecting end
在红宝石中,建议使用each
进行迭代,通常不使用for
循环。您可以尝试以下方法:
File.foreach("/Users/filip/Documents/Testcases/NG-ART_TC1054921_MKS+Results1/1054921_1042510_2242_TID-2123/TC1042510-TID2123-sequencer.log").each do |line|
puts line if line.match?('lineid')
end
这将为文件中的每一行执行给定的块,而不会将整个文件插入内存。
参见:IO::foreach
使您的示例工作看起来像:
File.open("/Users/filip/Documents/Testcases/NG-ART_TC1054921_MKS+Results1/1054921_1042510_2242_TID-2123/TC1042510-TID2123-sequencer.log", "r") do |file|
file.readlines().each do |line|
puts line if line.match("erc")
end
end