xargs와 함께 sed 사용

xargs와 함께 sed 사용
echo './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' | xargs -I {} cp {} `echo {} | sed s'/\///g' `

이로 인해 다음과 같은 오류가 발생했습니다.

cp: './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' and './2d41d907b7cb558db6f3ca49e992ad8/rendering/02.png' are the same file

sed가 작동하지 않는 것 같습니다 ...

나는 결국 이런 일을 하고 싶다

find . -name "*.png" | xargs -I {} cp {} ../`echo {} | sed s'/\///g' `

for 루프나 exec가 사용되지 않습니다.

답변1

대신 이 코드를 사용할 수 있습니다.

find . -type f -name '*.png' -exec sh -c 'echo cp "$1" ../"${1//\/}"' cp_sh {} \;

echo테스트 실행 결과가 만족스러우면 삭제하세요.

관련 정보