찾기 및 실행 명령에서 파일 이름 전달

찾기 및 실행 명령에서 파일 이름 전달

특정 파일을 찾고 찾은 파일을 사용하여 명령을 실행하는 스크립트를 작성하려고 합니다. 별로 어렵지는 않은 것 같지만 작동하는 데 많은 어려움을 겪었습니다. 기본적으로 내가 하는 일은 다음과 같습니다.

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'(작은따옴표를 이스케이프 처리해야 함).

관련 정보