![xargs -J 없이 pdftk 찾기에서 공백을 탈출합니다.](https://linux55.com/image/107652/xargs%20-J%20%EC%97%86%EC%9D%B4%20pdftk%20%EC%B0%BE%EA%B8%B0%EC%97%90%EC%84%9C%20%EA%B3%B5%EB%B0%B1%EC%9D%84%20%ED%83%88%EC%B6%9C%ED%95%A9%EB%8B%88%EB%8B%A4..png)
하위 디렉토리의 모든 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.
위의 문제를 모두 해결할 수 있지만 시작하는 데는 이것만으로도 충분합니다.