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

1

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

John Doe - titre.pdf
John Doe - title2.pdf
John Doe - title3.pdf
Jane Smith - quelque titre.pdf
Jane Smith - deuxième titre.pdf

Je souhaite combiner les fichiers PDF commençant par les mêmes deux mots dans leur nom de fichier pour obtenir le texte suivant:

John Doe.pdf
Jane Smith.pdf

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

Faire
la source
Est-il important de savoir quelle sera la première série de pages une fois ouvertes entre les deux? Ce ne sera jamais plus de deux qu'il faut fusionner, n'est-ce pas? Je voulais juste demander des éclaircissements à ce niveau au cas où cela serait important pour la solution que vous recherchez.
Pimp Juice IT
L'ordre n'a pas d'importance. Il peut y avoir deux ou trois fichiers correspondants.
À faire
Si vous pouvez regarder les exemples de ces deux pages, vous devriez être capable de trouver un exemple de code à essayer - vous n'êtes pas sûr que quelqu'un veuille écrire tout le code pour vous. Mais utiliser pdftk et le script bash devrait être possible. maketecheasier.com/combine-multiple-pdf-files-with-pdftk et celui-ci stackoverflow.com/questions/20669033/…
dbmitch le
De plus, selon l'exemple de PDFtk, je ne sais pas comment vous pouvez boucler cela en bash, mais en batch, je l'ai utilisé à des fins similaires sans la logique de correspondance de chaîne de nom de fichier, comme cela vous donnerait un autre pointeur pour commencer à écrire de la logique avec cela fonctionne peut-être: %pdftk% %sourcedir%\*.pdf cat output %outputdir%\combined.pdfcela fonctionne bien pour la fusion de fichiers PDF sous Windows, donc je suppose que cela fonctionne aussi bien avec Linux, etc. Publiez du code avec une mise à jour de votre question dès que vous l'essayez, et je suis sûr que quelqu'un ici peut vous aider. une fois que vous montrez plus de travail de votre côté avec PDFtk.
Pimp Juice IT

Réponses:

0

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

  • liste les fichiers ayant un 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 pouvez ignorer les préfixes n'ayant qu'une occurrence, mais cela n'est probablement pas nécessaire si la commande pdf combine est heureuse avec un fichier et la copie simplement )
find -iname '* - *. pdf' | sed "s /-.*$//" | trier -u
  • boucle sur les préfixes, pour chacun obtenir la liste des fichiers commençant par ce préfixe et les combiner
IFS = $ '\ n'; pour le préfixe dans $ (find -iname '* - *. Pdf' | sed "s /-.*$//" | sort -u); do pdfunite $ prefix * $ prefix.pdf; terminé
Alain Tésio
la source
Merci aussi pour l'explication. Je n'arrivais pas à comprendre comment m'y prendre. Ça a marché comme sur des roulettes.
À faire