Ruby: 在所有目录中搜索文件时忽略目录中的句点?
Ruby: Ignore periods in directories when searching all directories for files?
我创建了一个查找脚本,用于在脚本所在的所有目录中的文件中搜索文本 运行。
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>'
我怎样才能忽略这些?
为了快速修复,您可以添加:
next if File.directory?(file)
在你的块的开头。
我创建了一个查找脚本,用于在脚本所在的所有目录中的文件中搜索文本 运行。
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>'
我怎样才能忽略这些?
为了快速修复,您可以添加:
next if File.directory?(file)
在你的块的开头。