Linux端末でPDFを名前順にマージする方法は? [コピー]

Linux端末でPDFを名前順にマージする方法は? [コピー]

インターネットで共有したくないPDFが86個あり、オンラインツールを使用してマージします。私はPopOS Linuxディストリビューションを使用しており、ターミナルを使用してマージしたいと思います。

PDF名は次のとおりです1.SubjectA2. 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

これがあなたの要件を満たしていない場合は、見つかった問題を説明してください。

関連情報