在没有 xargs -J 的情况下转义 pdftk 的 find 中的空格

在没有 xargs -J 的情况下转义 pdftk 的 find 中的空格

我想连接子目录中的所有 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.

尽管以上所有问题都可以解决,但这足以让您开始。

相关内容