1つのフォルダーに90個のサブフォルダーがあります。各サブフォルダーにはpdfファイルが含まれています。合計pdfファイルはほぼ2200です。すべてのpdfからページ番号3〜10を抽出するにはどうすればよいですか。
1つのPDFからページを抽出するには、次のコマンドを使用しています。
pdftk *.pdf cat 3-10 output 3-10.pdf
この1ライナー(読みやすくするために2行に分割)がテストされ、私のシステムでうまく機能します:
find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "${0%.pdf}_3-10.pdf"' {} \;
基本フォルダー(すべてのサブフォルダーを含むフォルダー)でターミナルウィンドウを開き、上記の1行のコマンド全体をコピーして貼り付けます。そうなる:
_3-10
が追加された元の名前そして、これはあなたの目的をきちんと経済的に達成するはずです...
バリエーション:
オプションで、different出力場所を指定して、変更されたすべてのpdfドキュメントを収集できます。たとえば、~/extracted
というフォルダーを作成し、上記のコマンドラインを次のように変更できます。
find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "~/extracted/${0%.pdf}_3-10.pdf"' {} \;
したがって、変更されたpdfファイルはすべて~/extracted
に表示されます。
限りない可能性 :)。
Pdftkはubuntu bionicではデフォルトで利用できなくなったため、qpdfを使用できます。find . -name '*.pdf' -type f -exec bash -c 'qpdf --empty --pages "$0" 3-10 -- "temp/${0%.pdf}_1.pdf"' {} \;
これにより、新しいPDFが一時フォルダーに配置されます。