Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/02/2013, à 11:00

dbourrion

(Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Bonjour.
J'ai un dossier qui contient plusieurs sous-répertoires contenant des images.
Je voudrais parcourir l'arbo, copier les images dans un autre répertoire, convertir ces images dans un PDF nommé avec préfixe du répertoire d'origine, puis effacer les images copiées, et on recommence sur le sous-répertoire suivant.

Voilà où j'en suis (j'ai bricolé ça avec des morceaux de scripts tirés d'ici)

#!/bin/bash

shopt -s globstar
for e in **; do
	p="${e%/*}" ; f="${e##*/}"
	find . -name *.JPG -exec cp {} /destination \;cd /destination	
	convert *.JPG "${p}"-totale.pdf 
	rm *.JPG
done

Problème : l'exécution du script ne produit que des erreurs :

actes.sh: line 3: shopt: globstar: invalid shell option name
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep1-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep2-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep3-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep4.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep5.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory
find: /destination: unknown option
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep6.pdf' @ error/convert.c/ConvertImageCommand/3021.
rm: *.JPG: No such file or directory

Aide bienvenue...
D

Dernière modification par dbourrion (Le 28/02/2013, à 18:32)

Hors ligne

#2 Le 28/02/2013, à 11:51

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Hum, une piste, globstar est pour bash > 4 et sur mon mac, bash --version
GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin11)
Copyright (C) 2007 Free Software Foundation, Inc.

La loose

Dernière modification par dbourrion (Le 28/02/2013, à 12:49)

Hors ligne

#3 Le 28/02/2013, à 12:51

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Bon, après un upgrade cde la version de bash, on progresse un peu  mais j'ai toujours

convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep1-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep2-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.
convert: UnableToOpenBlob `*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.
convert: NoImagesDefined `rep3/images-totale.pdf' @ error/convert.c/ConvertImageCommand/3021.

Hors ligne

#4 Le 28/02/2013, à 13:16

pingouinux

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Bonjour,
Je te propose ce script, qui ne cherche les fichiers .PNG que dans les répertoires situés dans le répertoire courant (sinon, le nom du fichier .pdf n'est pas correct). Une autre limitation est que s'il y a trop de fichiers .PNG dans un répertoire, on peut dépasser la longueur de la ligne de commande.

#!/bin/bash

while read rep
do
   [ "$rep" = "." ] && continue
   cp "$rep"/*.JPG /.../destination
   convert "$rep"/*.JPG "${rep#./}"-totale.pdf
done < <(find -maxdepth 1 -type d)

Hors ligne

#5 Le 28/02/2013, à 14:03

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Hello
Merci de ton aide, parce que seul, je panouille.

Chez moi ça donne donc ça

#!/bin/bash

while read rep
do
   [ "$rep" = "." ] && continue
   cp "$rep"/*.JPG /.../Users/daniel/Desktop/Atemp
   convert "$rep"/*.JPG "${rep#./}"-totale.pdf
done < <(find -maxdepth 1 -type d)

mais

iMac:script daniel$ ./zou.sh
find: illegal option -- m
find: illegal option -- a
find: illegal option -- e
find: illegal option -- p
find: illegal option -- t
find: illegal option -- h
find: 1: No such file or directory

sad

Hors ligne

#6 Le 28/02/2013, à 14:19

pingouinux

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Quelle est ta version de find ?

$ find --version
find (GNU findutils) 4.4.2

D'autre part, cette ligne n'est pas bonne :

   cp "$rep"/*.JPG /.../Users/daniel/Desktop/Atemp

Il faut remplacer /.../Users/daniel/Desktop/Atemp par le chemin complet du répertoire de destination.

Ajouté : Tu peux aussi essayer en remplaçant la dernière ligne du script par celle-ci :

done < <(find . -maxdepth 1 -type d)

Dernière modification par pingouinux (Le 28/02/2013, à 14:29)

Hors ligne

#7 Le 28/02/2013, à 14:57

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Oh ça doit être une vieille version smile parce que même

find --version

me donne une erreur (ah, les mac...)
Cela dit on progresse, en apportant les corrections que tu proposes, j'ai

cp: ./rep1/*.JPG: No such file or directory
convert: UnableToOpenBlob `./rep1/*.JPG': No such file or directory @ error/blob.c/OpenBlob/2617.

sachant l'arbo dans laquelle on essaie de bosser est de la forme

/rep1/images/1.jpg
/rep1/images/2.jpg
...
/rep2/images/1.jpg
/rep2/images/1.jpg

Hors ligne

#8 Le 28/02/2013, à 15:19

pingouinux

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Dans ce cas, même si ce n'est pas très propre, ceci devrait fonctionner :

#!/bin/bash

while read rep
do
   [ "$rep" = "." ] && continue
   cp "$rep"/images/*.jpg /.../destination        #     LIGNE À ADAPTER
   convert "$rep"/images/*.jpg "${rep#./}"-totale.pdf
done < <(find . -maxdepth 1 -type d)

Hors ligne

#9 Le 28/02/2013, à 16:04

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Ahhhhhh smile

J'ai changé un chouia en

#!/bin/bash

while read rep
do
   [ "$rep" = "." ] && continue
   convert "$rep"/images/*.JPG "${rep#./}"-totale.pdf
done < <(find . -maxdepth 1 -type d)

et ça marche parfaitement.
Je ne sais pas comment on dit merci mille fois en bash mais merci mille fois smile
D.

Hors ligne

#10 Le 28/02/2013, à 16:23

Postmortem

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Salut,

pingouinux a écrit :

Une autre limitation est que s'il y a trop de fichiers .PNG dans un répertoire, on peut dépasser la longueur de la ligne de commande.

Pour éviter ce souci, les outils d'imagemagick sont capables de faire les développements eux même, il suffit donc de remplacer :

convert "$rep"/images/*.JPG "${rep#./}"-totale.pdf

Par :

convert "$rep/images/*.JPG" "${rep#./}"-totale.pdf

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#11 Le 28/02/2013, à 17:30

dbourrion

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Hello smile
Bon en principe le nb d'images de chaque rep n'est pas très élevé mais deux précautions valent mieux qu'une, merci smile

Hors ligne

#12 Le 28/02/2013, à 18:20

pingouinux

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Merci de la précision, Postmortem. smile

Hors ligne

#13 Le 28/02/2013, à 19:48

Postmortem

Re : (Résolu) (des erreurs sur mon script qui fait des pdf avec des images)

Je vous en prie !
Il est bien ce petit imagemagick !


Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne