#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
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 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
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
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,
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
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
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.
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