ruby - 使用正则表达式搜索和匹配文件

时间:2012-03-22 06:08:15

标签: ruby

我有这个ruby脚本,允许我输入pdf文件的名称,然后在文件夹中查找该文件并将其打开。除了我必须对我的输入非常准确。例如:

Enter the name of the pdf file you would like to open.
> Survival Manual

如果文件的名称与我输入的完全相同,上面一行会打开这本书,但我们只想输入

> Survival

它不会打开它。所以我有以下代码:

docs = Dir.entries("/Documents")     #=> ["Survival Manual.pdf", "Military Manual.pdf"]

input = gets.chomp                             #=> "Survival"

select_doc = docs.grep(Regexp.new(input))      #=> ["Survival Manual.pdf"]

system("open", "/Documents/#{select_doc[0]}") 

最后一行最后打开pdf。这段代码似乎很复杂,我知道它可以做得更好,如果有的话,有什么我想念的吗?我可以使用更好的方法吗?经过多次尝试重构这段代码后,似乎只会变得更糟。 Ruby是一门伟大的语言,我希望能够做正确的事情,也许那些刚接触ruby的人(像我一样)可以从中获取一些东西。提前谢谢。

1 个答案:

答案 0 :(得分:2)

input = gets.chomp.delete '/'
system('open', Dir["Documents/#{input}*.pdf"].first)