1 votes

Fusionner des fichiers PDF en fonction des deux premiers mots du nom du fichier.

J'ai un dossier contenant un certain nombre de fichiers avec la structure de nom de fichier suivante :

John Doe - title.pdf
John Doe - title2.pdf
John Doe - title3.pdf
Jane Smith - some title.pdf
Jane Smith - second title.pdf

Je souhaite combiner les pdfs dont le nom de fichier contient les deux mêmes mots pour obtenir le résultat suivant :

John Doe.pdf
Jane Smith.pdf

Comment dois-je m'y prendre sous Linux en utilisant un script et l'un des outils disponibles sous Linux ?

0voto

kimo pryvt Points 391

Un peu vieux je sais, je voulais un tel script :

  • liste des fichiers ayant un caractère trait d'union

    find -iname '*-*.pdf'

  • garder la partie avant le trait d'union

    find -iname '*-*.pdf' | sed "s/-.*$//"

  • supprimer les doublons : vous avez les préfixes que vous voulez ("John Doe", "Jane Smith") (vous pourriez ignorer les préfixes n'ayant qu'une seule occurrence mais cela n'est probablement pas nécessaire si la commande combine pdf se contente d'un seul fichier et se contente de le copier).

    find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u

  • boucle sur les préfixes, pour chacun d'entre eux obtient la liste des fichiers commençant par ce préfixe et les combine

    IFS=$'\n';for prefix in $(find -iname '*-*.pdf' | sed "s/-.*$//" | sort -u) ; do pdfunite $prefix* $prefix.pdf ; done

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X