On Thu, 28 Sep 2006 21:22:06 +0200
Christophe Gaubert <[EMAIL PROTECTED]> wrote:
> Le 28/09/06, Jacques-Philippe JUBENOT <[EMAIL PROTECTED]> a écrit :
>
> > Si je comprend bien.
> > Mon fichier script devrait être comme suit.
> >
> > echo ${var##*_}
>
> Cette ligne est inutile, mais elle résulte peut-être d'un copier-coller
> rapide...
>
> > for jpg in *.jpg; do
> > if [ -e "${jpg:5}" ]; then
> > echo $jpg non renommé
> > else mv "$jpg" "${jpg:5}"
> > fi
> > done
>
oui
> IL faut que tu sois sûr que tous tes fichiers aient le même format de
> nom. La variante que tu as choisie dans le mail de Jipe (${jpg:5}) a
> pour effet de renommer chaque fichier en supprimant les 4 premiers
> caractères. Donc il faut être sûr que c'est bon (et/ou faire une
> sauvegarde des photos avant de faire tourner le script dessus, c'est
> toujours préférable de toutes façons).
>
> A part cette petite mise en garde, il faut voir que ce script traitera
> toutes les images JPG du répertoire courant (le répertoire dans lequel
> tu te trouves quand tu lances l'exécution du script). En particulier,
> si tu as des photos dans des sous-répertoires de ce répertoire, elles
> ne seront pas traitées. Il faudra, soit faire tourner le script dans
> chacun des sous-répertoires, soit écrire un script un peu plus évolué.
> Quelque chose comme :
>
> find . -name '*.jpg' | while read file; do
> if [ -e "${file:5}" ]; then
> echo $file non renommé
> else mv "$file" "${file:5}"
> fi
> done
>
non, car alors le traitement ne se fera plus sur fichier.jpg mais sur
dir1/dir2/.../fichier.jpg
mais on peut rendre un script récursif assez facilement
tape ceci dans un terminal pour tester:
$ cmd() { pwd; }
$ rec() { for rep in *; do [ -d "$rep" ] && (cd "$rep"; cmd; rec); done; }
$ cmd; rec
> Enfin, pour exécuter le script, il faut que tu enregistres un
> fichier texte avec la première ligne qui indique l'interpréteur :
>
> #!/bin/bash
> for jpg in *.jpg; do
> if [ -e "${jpg:5}" ]; then
> echo $jpg non renommé
> else mv "$jpg" "${jpg:5}"
> fi
> done
>
> Supposons que tu l'appelles rename.sh (l'extension .sh n'est pas
> obligatoire mais ça permet de voir rapidement que c'est un script shell
> quand on fait "ls"). Tu l'enregistres dans le répertoire de tes photos
> et tu le rends exécutable :
>
> cd le/répertoire/des/photos
> chmod u+x rename.sh
>
> Puis tu l'exécutes :
> ./rename.sh
pas obligatoire si tu exécutes ton script de la manière suivante:
sh rename.sh
>
> Bon, j'ai peut-être dit des trucs que tu savais déjà, mais bon, je me
> sentais l'âme pédagogique ce soir ^_^
>
> --
moi t'aussi :þ
bye
jipe
=========================================
Vous souhaitez acquerir votre Pack ou des Services Mandriva?
Rendez-vous sur "http://store.mandriva.com".
Rejoignez le club mandrake : http://www.mandrivaclub.com
=========================================