我在 下有一系列 zip 文件@workingdir
,并且正在尝试解压缩匹配的文件@Regexp
,并从中打印行。
require 'zip/zip'
@workingdir = '/my/dir/structure/*.zip'
@Regexp = '/yup:maybe.*nope/i'
Dir.glob(@workingdir) do |zips|
Zip::ZipFile.open(zips) do |file|
file.each do |search|
tempFile = file.read(search)
tempFile.each do |line|
if (line =~ @Regexp ) then
p line
end
end
end
end
end
以下是来自 IRB 的错误消息:
NoMethodError: undefined method `each' for #<String:0x0000000168bf40>
from (irb):70:in `block (3 levels) in irb_binding'
from /var/lib/gems/1.9.1/gems/rubyzip2-2.0.2/lib/zip/zip.rb:1122:in `each'
from /var/lib/gems/1.9.1/gems/rubyzip2-2.0.2/lib/zip/zip.rb:1122:in `each'
from /var/lib/gems/1.9.1/gems/rubyzip2-2.0.2/lib/zip/zip.rb:1265:in `each'
from (irb):68:in `block (2 levels) in irb_binding'
from /var/lib/gems/1.9.1/gems/rubyzip2-2.0.2/lib/zip/zip.rb:1381:in `open'
from (irb):67:in `block in irb_binding'
from (irb):66:in `glob'
from (irb):66
from /usr/bin/irb:12:in `<main>'
我试过tempFile.grep
了,收到了同样的错误,除了那grep
是一个未定义的方法。我相信我需要定义一个类。