하위 디렉토리의 모든 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.
위의 문제를 모두 해결할 수 있지만 시작하는 데는 이것만으로도 충분합니다.