如何在 Linux 终端中按名称顺序合并 pdf?

如何在 Linux 终端中按名称顺序合并 pdf?

我有 86 个 PDF,我不想在互联网上共享并使用在线工具合并。我正在使用 PopOS Linux 发行版,我想使用终端合并它。

PDF 名称类似于1.SubjectA, 2. SubjectB (以 Number. 开头,因此它们排序良好)这是我发现的,但它们都没有按顺序合并:

qpdf --empty --pages *.pdf -- out.pdf

文件名示例:

1. Why to learn System and Network.pdf
2. Network, Hardwares, LAN-WAN.pdf
3. Protocols-Ports, OSI-TCP IP.pdf
4. ARP, ICMP, RFC, IANA.pdf
...

模式为数字 + .(点)+ 空格 + 名称

答案1

对于一个目录中的所有文件,可以去掉文件名中的空格和逗号,然后对它们进行排序并合并,因此:

 find . -name "*" -type f | rename 's/ /_/g'
 find . -name "*" -type f | rename 's/,/_/g'
 ls | sort -n | pdfunite *.pdf merged.pdf

答案2

我会尝试调整排序命令以匹配所需的顺序:

qdf --empty --pages `ls *.pdf |sort -n` -- out.pdf

如果文件名包含空格,此方法将不起作用。在这种情况下,我建议:

find . -name "*.pdf" -type f -print0  |sort -V -z |xargs -0 qpdf --empty --pages {} -- out.pdf

如果这不能满足您的需求,请解释您发现的问题。

相关内容