2012-03-21 3 views
2

ruby ​​스크립트를 사용하여 유닉스 시스템의 모든 디렉토리에서 특정 파일 유형을 검색하려고합니다. 파일 모든 디렉토리 및 하위 디렉토리를 검색하는 방법에 대한Ruby - 모든 디렉토리에서 파일 검색 및 수집

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

그러나 방법 :뿐만 아니라

my_pdfs = Dir['*pdf'] 

: 다음 코드는 현재의 모든 디렉토리에 .PDF로 끝나는 파일을 검색합니다 이해 .pdf 확장자?

+0

가능한 복제본 [특정 유형의 파일에 대한 폴더 및 모든 하위 폴더 검색] (http://stackoverflow.com/questions/3498539/searching-a-folder-and-all-of-its-subfolders) -for-of-a-certain-type) – Matt

+0

@Matt 실제로 솔루션을 사용하려고했지만 다음 구문 오류가 발생했습니다. 구문 오류, 예기치 않은 '=' 내 첫 번째 가정은 내가 루비 1.9를 사용하고 있다는 것입니다. 3 그리고 2010 년에 게시되었으므로 루비의 이전 버전 이었습니까? –

+0

@MurQuirk 구문 오류가 발생한 줄은 무엇입니까? 아마도 당신은 당신의 문제에 대해 거기에 대해 언급해야 할 것입니까? –

답변

4

체크 아웃 Find 모듈 : http://www.ruby-doc.org/stdlib-1.9.3/libdoc/find/rdoc/Find.html

Dir.glob 재귀 거의뿐만 아니라 발견 같은 것을 처리하지 않습니다 로빙 이후 이상적인 미만 사용합니다.

또한 * nix 상자에있는 경우 find 명령을 사용해보십시오. 그것의 꽤 놀랍게도 하나의 라이너에 유용합니다.

1

아마 같은 :

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

?

Linux를 사용하고 있지 않으므로 작동하지 않을지 잘 모릅니다. ** 구문은 재귀 목록을 의미합니다.

관련 문제