간단한 쉘 스크립트를 사용하여 SoX로 mp3 파일을 처리했습니다.PPSS 쉘 스크립트
for f in ./*.mp3; do sox "$f" "${f%%.mp3}S.mp3" silence 1 0.02 1% -1 0.02 1%; done
구문은 다음과 같이해야한다 :
sox in.wav out.wav silence 1 0.1 1% -1 0.1 1%
그것은 내가 폴더에있는 파일에서 침묵을 제거하고 마지막에 "X"로 새 파일을 만듭니다 (구별하기 원본에서). 내/bin 폴더에 스크립트를 저장하고 잘 작동합니다.
그러나 이제 병렬로 8 개의 인스턴스를 실행하기 위해 PPSS와 함께 사용하려고합니다. 그래도 작동하지 않는 것 같습니다. 로그 파일에서 로그에 계속 오류가 발생하는 것 같습니다.
/usr/local/bin/ppss : 2283 줄 : soxy.sh/Users/marw/Downloads/testfolder // ppss_dir/job_log/_Users_marw_Downloads_testfolder__10_audio_mp3 : 해당 파일이나 디렉토리
상태 : 실패 총 처리 시간 (hh : mm : ss) : 0시 0분 1초이
PPSS 구문은 다음과 같이해야한다 :
|P|P|S|S| Distributed Parallel Processing Shell Script 2.97
usage: /usr/local/bin/ppss [[ -d <sourcedir> | -f <sourcefile> ]] [[ -c '<command> "$ITEM"' ]]
[[ -C <configfile> ]] [[ -j ]] [[ -l <logfile> ]] [[ -p <# jobs> ]]
[[ -q ]] [[ -D <delay> ]] [[ -h ]] [[ --help ]] [[ -r ]] [[ --daemon ]]
Examples:
/usr/local/bin/ppss -d /dir/with/some/files -c 'gzip '
/usr/local/bin/ppss -d /dir/with/some/files -c 'cp "$ITEM" /tmp' -p 2
/usr/local/bin/ppss -f <file> -c 'wget -q -P /destination/directory "$ITEM"' -p 10
저는 scr을 처음 사용했습니다. 그게 어리석은 질문이라면 용서해주세요. 내 OS는 MacOS 10.11.5입니다.
ppss -d /Users/marw/Downloads/testfolder -c 'soxy.sh'
은 아마 다르게 내 원래의 스크립트를 작성해야합니다 :
이것은 내가 PPSS에 노력하고있어인가? 그것은 PPSS없이 잘 작동합니다.
편집 :
여기 디버그 로그를 가지고 : http://pastebin.com/wak47rf8
게시물을 다시 읽은 후 답변을 삭제했습니다. "ppss"에 익숙하지는 않지만 어떻게 작동하는지는 알지만 "ppss"가 스크립트 "soxy.sh"를 디렉토리 경로에 전달하는 것으로 보입니다. 나는 다시 게시하기 전에 이것을 약간 숙고 할 것이다. – bluerojo
ok cool :) 감사합니다. BTW, 그것은 PPSS가 될 필요는 없지만, 이것이 내가 Stackoverflow에서 찾은 것입니다. 난 그냥 병렬로 스크립트를 실행하여 1 대신 8 코어를 사용할 수 있습니다. – Marw
답변을 찾았는데,이 "soxy.sh"처럼 "soxy.sh"다음에 후행 공백을 남겨 둬야했습니다. 이 방법을 시도하고 그것을 작동합니다. – Marw