J'ai cette commande ici pour convertir par lots PDF documents (2 premières pages) aux fichiers TIFF à l'aide de pdftoppm
.
L'objectif est de mettre les images TIFF dans son propre dossier avec le nom de dossier correspondant au nom d'origine PDF Nom du fichier.
for file in *.pdf; do
pdftoppm -tiff -f 1 -l 2 "$file" ~/tiff/directory/"$file"/"$file"
done
Comment puis-je exécuter 8 instances de la commande pdftoppm
simultanément?
Je court debian. J'ai 1000000s de PDF à convertir en TIFF.
En utilisant GNU parallel
:
printf '%s\0' ./*.pdf |
parallel --null --jobs 8 \
pdftoppm -tiff -f 1 -l 2 '{}' ~/tiff/directory/'{/.}'/'{/.}'.tiff
Le pipeline de commande ci-dessus exécuterait votre commande pdftoppm
sur tous les noms de fichiers correspondants *.pdf
Dans le répertoire actuel. Le '{}'
élargit au nom de chemin actuel tandis que '{/.}'
Développe au basename du nom de chemin actuel, avec le suffixe de nom de fichier supprimé. Donc, si le nom de fichier actuel est ./file-02.pdf
, ensuite '{}'
serait './file-02.pdf'
tandis que '{/.}'
serait file-02
.
Je vais nourrir parallel
avec des noms de chemin à peine délimités à partir de printf
pour pouvoir faire face à tout nom de fichier possible. Ceux-ci sont lus avec --null
par parallel
.
J'ai pris des libertés avec ce que le nom de destination devrait être. Vous devriez régler cela à ce que vous voulez réellement utiliser.