find -exec를 사용하여 파일 확장자를 제거하세요.

find -exec를 사용하여 파일 확장자를 제거하세요.

를 사용할 때 두 번째 중괄호 쌍 ( 즉) 에서 원래 파일 확장자를 find어떻게 제거합니까?.pdf-exec{}


예를 들어:

find ~/Documents -regex 'LOGIC.*\.pdf' -exec pdf2svg {} {}.svg \;

파일 이름 입력:

~/Documents/LOGIC-P_OR_Q.pdf

출력 파일 이름:

~/Documents/LOGIC-P_OR_Q.pdf.svg

필수 파일 이름:

~/Documents/LOGIC-P_OR_Q.svg

답변1

"인라인" 쉘 스크립트를 사용할 수 있으며,매개변수 확장:

-exec sh -c 'pdf2svg "$1" "${1%.pdf}.svg"' sh {} \;

또는 ( find지원하면 더 효율적입니다)

-exec sh -c 'for f; do pdf2svg "$f" "${f%.pdf}.svg"; done' sh {} +

답변2

한 가지 방법은 기본 스크립트를 통해 결과를 실행하는 것입니다.

for i in $( find ~/Documents -regex 'LOGIC.*\.pdf' )  
do  
    o=$( echo $i | sed -e s/.pdf$// )  
    pdf2svg $i ${o}.svg  
done 

관련 정보