Ruby - поиск и сбор файлов во всех каталогах - PullRequest
2 голосов
/ 21 марта 2012

Я пытаюсь найти определенный тип файлов во всех каталогах в моей системе Unix, используя скрипт ruby. Я понимаю, что следующий код будет искать все файлы, заканчивающиеся на .pdf в текущем каталоге:

my_pdfs = Dir['*pdf']

А также:

my_pdfs = Dir.glob('*.pdf').each do |f|
  puts f
end

А как насчет поиска всех каталогов и подкаталогов для файлов с расширением .pdf?

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

Проверьте модуль Find: http://www.ruby -doc.org / stdlib-1.9.3 / libdoc / find / rdoc / Find.html

Использование Dir.globэто менее чем идеально, так как globbing не обрабатывает рекурсию почти так же хорошо, как что-то вроде find.

Также, если вы используете * nix box, попробуйте использовать команду find.Это довольно удивительно полезно для одного лайнера.

1 голос
/ 21 марта 2012

Может быть что-то вроде:

pdfs=Dir['/**/*.pdf']

?

В настоящее время не используется Linux, поэтому не знаю, сработает ли это.Синтаксис ** подразумевает рекурсивный листинг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...