我创建了一个find脚本来搜索运行脚本的所有目录中的文件中的文本。
print "Enter text to search: "
input = gets.chomp
search = Regexp.escape(input)
Dir.glob("**/*.*").each do |file|
data = File.read(file)
if data.match(search)
puts "Text Found: " + __dir__ + "/" + file
end
end
它有效,但是我收到此错误,因为我搜索的目录包含带句点的目录名。
find.rb:7:in `read': Is a directory @ rb_sysopen - cramws/cram_ws.egg-info (Errno::EISDIR)
from find.rb:7:in `block in <main>'
from find.rb:6:in `each'
from find.rb:6:in `<main>'
我怎样才能进入这些?
答案 0 :(得分:2)
要快速修复,您可以添加:
next if File.directory?(file)
在你的街区的开头。