Vous n'êtes pas identifié(e).
Bonjour
Je suis en train de créer un script qui me permet de convertir plusieurs images dans plusieurs sous-répertoires
$ cd /home/damien/test/
Dans ce répertoire il y a 3 sous-répertoires appelés 1,2 et 3.
Voici le script que je nomme png2jpgtest
#!/bin/bash
# Si on a moins d'un argument, on quitte
[ $# -ne 1 ] && echo 'J'\''ai besoin d'\''un argument !' && exit 1
# Si le répertoire source n'existe pas, on quitte
[ ! -d "$1" ] && echo 'J'\''ai besoin d'\''un répertoire de source valide !' && exit 1
SOURCE="$1"find "$SOURCE" -iname 'test.png' -exec convert -quality 80 test.jpg \;
J'éxécute le script avec la commande
$ sh png2jpgtest /home/damien/test
Et voici le résultat
convert: nom de fichier d'image absent `test.jpg' @ convert.c/ConvertImageCommand/2806.
convert: nom de fichier d'image absent `test.jpg' @ convert.c/ConvertImageCommand/2806.
convert: nom de fichier d'image absent `test.jpg' @ convert.c/ConvertImageCommand/2806.
Besoin d'aide SVP
Merci
Dernière modification par damo (09/01/2010 21:06:32)
Hors ligne
Je ne pense pas que tu puisses pas faire plus compliqué comme script !!
#!/bin/bash
# Si on a moins d'un argument, on quitte
if [[ $# -ne 1 ]]
then
echo "J'ai besoin d'un argument !"
exit 1
fi
SOURCE="$1"
# Si le répertoire source n'existe pas, on quitte
if [[ ! -d ${SOURCE} ]]
then
echo "J'ai besoin d'un répertoire de source valide !'
exit 1
fi
find "$SOURCE" -iname 'test.png' -exec convert -quality 80 test.jpg \;
C'est cette dernière ligne que je ne comprends pas !!!!
Tu cherches uniquement un fichier qui se nomme "test.png" ?? normalement un exec de find se termine par une "{} \;" ce que tu ne fais pas !!!
Pour moi le find, je le vois comme cela
find ${SOURCE} -iname "*.png" -exec convert -quality 80 {} test-{}.jpg \;
... quoique c'est à tester !!!
LeDub correcteur scriptique ?
Dernière modification par ledub (15/11/2009 22:48:02)
« Ne doutez pas qu'un petit nombre de personnes déterminées puisse changer le monde. En fait, ça a même toujours marché comme ça.»
Margaret Mead
---
VeoSearch est un moteur de recherche solidaire qui permet de financer des projets associatifs de développement durable par vos recherches Internet. Utilisez-le !!!
Hors ligne
Oui oui, je connais à peu près bien convert pour l'utiliser dans tous mes scripts de gestion d'image et il te manque effectivement le fichier de destination ou original dans ta commande.
Le premier fichier précisé est la source, ici ce sera le {} de find, le second la destination.
[email protected]
"Contrairement aux chasseurs qui, eux, ne sont pas des lapins, les pollueurs, eux sont des ordures. - Philippe Geluck, Le chat"
gpg: 0828C222
Hors ligne
Voici comment j'ai écrit le script
#!/bin/bash
# Si on a moins d'un argument, on quitte
[ $# -ne 1 ] && echo 'J'\''ai besoin d'\''un argument !' && exit 1
# Si le répertoire source n'existe pas, on quitte
[ ! -d "$1" ] && echo 'J'\''ai besoin d'\''un répertoire de source valide !' && exit 1
SOURCE="$1"find "$SOURCE" -iname 'test.png' -exec convert {} -quality 85 {}.jpg \;
find "$SOURCE" -iname 'test.png.jpg' -exec rename 's/png.jpg/jpg/' test.jpg {} \;
find "$SOURCE" -iname 'test.png' -exec rm -f test.png {} \;
Merci
Hors ligne