2009-11-04 8 views
1

나는 렌더 (수천 개의 이미지 파일)에서 누락 된 프레임을 추적하는 스크립트를 작성하고 있습니다. 순서대로 번호가 프레임을 찾기 위해 나는이 작업을 수행 : - 파일이 (foo_001.bar 같은 번호가 매겨집니다 때 숫자를 일치applescript + 쉘 스크립트 문제

set thecontents to every paragraph of (do shell script 
"while IFS= read -r -d '' file; 
do echo \"$file\"|sed -E \"s|.*[^[:digit:]]0*([[:digit:]]+)\\..*|\\1|\" ; 
done< <(find \"" & thefolderPPath & "\" -name \"*.*\" -print0)") 

발견은 모든 파일을 찾아 내고, 나오지는 후행 번호 오프를 제외한 모든 스트립 심지어 foo3_001.bar 인 경우에도) 숫자가 아닌 숫자를 찾은 다음 일련의 숫자가 뒤 따르고 점 확장자가 뒤 따르고 숫자 만 제외하고 모두 찾습니다.

내가

while IFS= read -r -d '' file 
do echo "$file"|sed -E "s:.*[^[:digit:]]0*([[:digit:]]+)\..*:\1:" 
done < <(find "/Volumes/foo/imagesequence/" -name "*.*" -print0) 

이 숫자의 좋은 목록을 생성하지만, 경우 애플 I이

"쉬를 얻을 수 (도피하지 않고) 다음과 같이 실행할 경우이 쉘에서 작동 : -c : 라인 0 :

어떤 아이디어 예기치 않은 토큰`< '근처의 구문 오류가 나는 나오지 파괴함으로써 AppleScript로 그것을 구현할 수 있습니다 함수와 find 함수를 별도의 쉘 스크립트로 통합 할 수 있지만 느리다.

<(find "/Volumes/foo/imagesequence/" -name "*.*" -print0) 

AppleScript로 do shell script 명령은 항상 /bin/sh (Posix 쉘 의미)를 사용하고 프로세스 대체가 Posix /bin/sh에서 지원되지 않습니다 : 당신이 여기 bash 공정 대체를 사용하는 것처럼

답변

2

는 것 같습니다. Bash -isms를 피하기 위해 스크립트를 다시 작성하거나 다른 쉘로 AppleScript 셸 스크립트를 실행하는 방법에 대해서는 here 제안 사항을 따르십시오.

+0

글쎄, 누가 그걸 상쾌하게 했을까? 감사. – stib