스크립트를 실행한 다음 일치하는 항목마다 실행하고 싶지만 find
각 .txt 파일의 출력 위에 일치하는 파일의 이름을 인쇄하고 싶습니다 exec
. 다음 출력을 어떻게 생성할 수 있습니까?
$ find . -name 'something' -exec sh script.sh {} \;
./something_1
output from
script.sh something_1
./something_2
output from
script.sh something_2
현재는 script.sh
. 나는 시도했지만 -exec echo {} && sh script.sh {} \;
성공하지 못했습니다.
-exec
xargs -print0
나는 공백 문제가 덜 발생하는 or 를 사용하는 솔루션을 선호합니다 .
답변1
find
다른 작업을 지정하지 않으면 기본값은 일치하는 모든 파일을 인쇄하는 것입니다.
이렇게 하면 가 -exec ...
대체됩니다 -print
.
두 가지 작업을 합치면 이라는 뜻입니다 AND
.
따라서 다음 두 가지만 수행하세요.
$ find . -name 'something' -print -exec sh script.sh {} \;
답변2
이 시도:
$ find . -name 'something' -exec sh script.sh {} \; |
script.sh |
script.sh