Ruby中的高级数组排序

Rub*_*ner 2 ruby arrays split

我目前正在研究一个红宝石项目,我就如何继续下去了.在项目中,我使用Dir.glob搜索目录及其所有子目录中的某些文件类型并将它们放入数组中.我正在使用的文件类型都具有相同的文件名,并通过扩展名进行区分.例如,

txt_files = Dir.glob("**/*.txt")
doc_files = Dir.glob("**/*.doc")
rtf_files = Dir.glob("**/*.rtf")
Run Code Online (Sandbox Code Playgroud)

会返回类似的东西,

FILECON.txt ASSORTED.txt FIRST.txt

FILECON.doc ASSORTED.doc FIRST.doc

FILECON.rtf ASSORTED.rtf FIRST.rtf

所以,我的问题是如何有效地分解这些数组(处理数千个文件)并将具有相同文件名的所有文件放入数组中.新阵列看起来像,

FILECON.txt FILECON.doc FILECON.rtf

ASSORTED.txt ASSORTED.doc ASSORTED.rtf

等等

我甚至不确定glob是否是正确的方法(所有具有相同文件名的文件都在相同的文件夹中).任何帮助将不胜感激!

gle*_*man 6

将所有文件放入一个数组中 Dir.glob("**/*.{txt,doc,rtf}")

不要忘记所有文件名也都有目录,所以如果你想按基名排序,那么

files = Dir.glob("**/*.{txt,doc,rtf}").sort_by {|f| File.basename f}
Run Code Online (Sandbox Code Playgroud)