web-dev-qa-db-fra.com

Comment exécuter PDF à la conversion TIFF en parallèle?

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.

1
an0nhi11

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.

2
they