2012-12-21 3 views
5

나는 KornShell (ksh) 스크립트를 Groovy로 변환하려고하고있다. 나는 다음과 같은 찾기 명령을 가지고있다. 유닉스 명령에 의존하지 않고 그루비 (Groovy) 방식으로 무언가를 할 수있는 것은 무엇일까? (크로스 플랫폼에서 작업해야하므로 "ㅋ ㅋ ㅋ"할 수 없다.).Groovy 유닉스 FIND 명령

find <source directory> -name <file pattern> -type f -mtime +140 -level 0 

파일 패턴과 일치하는 이상 140 시대는 소스 디렉토리에있는 모든 파일 (NO 하위 디렉토리)에 대한이 코드를 검색합니다.

답변

6

Groovy는 디렉토리를 검색하는 몇 가지 방법을 제공합니다 : -level 0의 경우 File.eachFile, 일반적인 경우는 File.eachFileRecurse입니다. 예 :

use(groovy.time.TimeCategory) { 
    new File(".").eachFile { file -> 
     if (file.isFile() && 
      file.lastModified() < (new Date() - 140.days).time) { 
      println file 
     } 
    } 
} 
+2

또는 레벨 0을하고 있다면, 당신은 File.listFiles을 (할)와 findall은 그냥 수집 –

+1

애 스커에 오래된 파일을 얻을 수 있음을 따를 수는 패턴에 대해 이름과 일치 싶어 새로운 File ('.'). eachFileMatch (~ /.*? \. JPG /) {...와 같은 eachFileMatch()를 사용해야합니다. – JasonM1