xargs -J 없이 pdftk 찾기에서 공백을 탈출합니다.

xargs -J 없이 pdftk 찾기에서 공백을 탈출합니다.

하위 디렉토리의 모든 PDF를 연결하고 싶습니다. 파일 이름에 공백이 포함될 수 있습니다. 나에게 해결책은 분명하다.

find . -name *.pdf -print0 | xargs -0 -J FILE  pdftk FILE cat output out.pdf

그러나 불행히도 내 버전의 xargs는 -J 옵션을 지원하지 않습니다. 이것을 달성하는 다른 방법이 있습니까?

나는 이것을 시도했다

pdftk $(find . -name *.pdf -print0 | xargs -0  -I {} printf '%q ' {}  ) cat output out.pdf

그러나 pdftk는 이를 탈출구가 없는 것처럼 취급합니다.

답변1

-I당신을 위해서가 아닙니다. 필요한 것은 다음과 같습니다.

find . -name '*.pdf' -type f -exec sh -c 'pdftk "$@" cat output /tmp/out.pdf' x {} +

다음은 몇 가지 면책사항입니다.

a) Your current working dir. != /tmp
b) The sh is run just once otw, the out.pdf will be overwritten by the last run.
c) Your sh stores the 1st -> $0, 2nd -> $1, 3rd -> $2, etc.

위의 문제를 모두 해결할 수 있지만 시작하는 데는 이것만으로도 충분합니다.

관련 정보