我需要计算确定文件中一个字符串的出现次数,我正在使用
a = File.read(file)
打开文件并使用
进行计数/扫描a.scan(string){cont = cont + 1}
但我需要计算从定义位置到文件定义位置的事件。例如:从a[4502]
到a[9549]
。
我不知道是否需要剪切文件并在此扫描之后,或者我是否可以使用简单的循环(while,for,until,break,redo和retry)解决此问题,或者我是否可以使用命令
arq.seek(arg, IO::SEEK_SET)
拜托,有人可以帮助我吗?
答案 0 :(得分:0)
只需遍历文本文件,为每行添加索引,并仅在from
和to
行号之间进行匹配(从零开始计数)
cont = 0
File.open(file).each_with_index do |l,ix|
cont += l.scan(string).count if (from..to).cover? ix
end
答案 1 :(得分:0)
我使用了@engineersmnky建议
文件#read接受偏移和长度,但我不确定你是否 将偏移定义为行,字符,字节等,例如 File.read(文件,5047,4502)可能适合您,其中4502是偏移量 从文件的开头和5047(9549 - 4502)的长度来 读
它解决了我的问题。