특정 파일을 찾고 찾은 파일을 사용하여 명령을 실행하는 스크립트를 작성하려고 합니다. 별로 어렵지는 않은 것 같지만 작동하는 데 많은 어려움을 겪었습니다. 기본적으로 내가 하는 일은 다음과 같습니다.
find /Users/Me/MyFolder -name '*filename.tsv' -print0 -exec /usr/bin/java -jar -Xmx2G /Volumes/Macintosh\ HD/Applications/mMyApp/MyApp.jar -s "," -e "." {} > {}-new.tsv \;
{}-new.tsv
결과는 발견된 모든 파일의 출력을 포함하는 MyApp.jar 이라는 파일입니다 .
누구든지 내가 뭘 잘못하고 있는지 밝힐 수 있습니까?
답변1
알겠습니다. 해결했습니다. 분명히 중괄호를 가려야합니다.
find /Users/Me/MyFolder -name '*filename.tsv' -print0 -exec bash -c '/usr/bin/java -jar -Xmx2G /Volumes/Macintosh\ HD/Applications/mMyApp/MyApp.jar -s "," -e "." "$1" > "$1-new.tsv"' {} \;
또한 명령은 다음을 사용하여 호출해야 합니다 bash -c 'command string'
(작은따옴표를 이스케이프 처리해야 함).