Escape whitespace em find for pdftk sem xargs -J

1

Gostaria de concatenar todos os PDFs em subdiretórios, com nomes de arquivos potencialmente contendo espaços em branco. Eu estou bem ciente desta solução,

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

No entanto, minha versão xargs não suporta a opção -J, infelizmente. Existem maneiras alternativas de conseguir isso?

Eu tentei isso

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

mas pdftk trata isso como se as fugas não estivessem lá.

    
por user32849 16.03.2017 / 11:35

1 resposta

0

-I não é a opção certa para você. O que você precisa é o seguinte:

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

Algumas isenções de responsabilidade estão em ordem aqui:

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.

Embora todos os itens acima possam ser trabalhados, isso é suficiente para você começar.

    
por 16.03.2017 / 12:41