我試圖使用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