일치하는 항목을 찾아 인쇄하고 -exec를 실행하는 방법

일치하는 항목을 찾아 인쇄하고 -exec를 실행하는 방법

스크립트를 실행한 다음 일치하는 항목마다 실행하고 싶지만 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 {} \;성공하지 못했습니다.

-execxargs -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

관련 정보