我试图使用ruby脚本在我的unix系统上的所有目录中搜索某种文件类型。据我所知,下面的代码将搜索当前目录中名为.pdf结尾的所有文件:Ruby - 搜索并收集所有directorys中的文件
my_pdfs = Dir['*pdf']
除了:
my_pdfs = Dir.glob('*.pdf').each do |f|
puts f
end
但如何对搜索所有目录和子目录的文件与.pdf扩展名?
我试图使用ruby脚本在我的unix系统上的所有目录中搜索某种文件类型。据我所知,下面的代码将搜索当前目录中名为.pdf结尾的所有文件:Ruby - 搜索并收集所有directorys中的文件
my_pdfs = Dir['*pdf']
除了:
my_pdfs = Dir.glob('*.pdf').each do |f|
puts f
end
但如何对搜索所有目录和子目录的文件与.pdf扩展名?
退房的Find
模块: http://www.ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html
使用Dir.glob不到理想的,因为通配符不处理递归接近以及类似的发现。
另外,如果您在* nix框中,请尝试使用find
命令。它非常有用的一个内衬。
也许是这样的:
pdfs=Dir['/**/*.pdf']
?
现在不使用Linux,所以不知道这是否可行。 **
语法意味着递归列表。
[为一个特定类型的文件搜索文件夹及其所有子文件夹]的可能的重复(http://stackoverflow.com/questions/3498539/searching-a-folder-and-all-of-its-subfolders -for-files-of-certain-type) – Matt 2012-03-21 01:54:02
@Matt我实际上试图使用那里的解决方案,但得到了以下语法错误:语法错误,意外'=' 我的第一个假设是我使用的是Ruby 1.9。 3,并于2010年发布,因此它是早期版本的红宝石? – 2012-03-21 02:04:39
@MurQuirk你的语法错误是哪一行?也许你应该在那里评论你的问题? – 2012-03-21 02:36:40