Renommer des fichiers en masse

Grand'Pa grand-pa at grand-pa.dyndns.org
Dim 29 Jan 02:34:16 UTC 2006


Marian Robusti a écrit :
> Je souhaiterais renommer des fichiers en nombre
> Je ne me suis pas trop intéressé à bash pour le moment mais je crois
> qu'il est possible de faire ça.

Si tu veux renommer tous les fichiers dans une arborescence entière, voici 
un petit script récursif qui va mettre les lettres en minuscule, remplacer 
les espaces par des underscores et remplacer les lettres accentuées par 
des lettres non accentuées :
-------------------------------------------------------------------------
#!/bin/bash

mk_thumb()
{
   for i in `ls -Aw1 $1`
   do
     IMG_FILE_LOWER=$(echo $IMG_FILE | tr '[:upper:] 
àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ' '[:lower:]_aceeeeiioouuACEEEEIIOOUU')
     [ $IMG_FILE != $IMG_FILE_LOWER ] && mv $1/$i/$IMG_FILE 
$1/$i/$IMG_FILE_LOWER
   done
}

IFS=$'\t\n'
mk_thumb /TON/REPERTOIRE/
-------------------------------------------------------------------------
Attention, il n'y a que 2 lignes dans la boucle (entre 'do' et 'done') 
mais elle risquent d'apparaître coupée à l'affichage. De même, entre 
'[:upper:]' et 'à', il y a un espace.

On peut faire plus court, mais c'est moins lisible.  ;)

-- 
Franck PIERRE : grand-pa at grand-pa.dyndns.org
Site SME-Fr   : http://sme-fr.homelinux.net
Site photos   : http://grand-pa.myphotos.cc





Plus d'informations sur la liste de diffusion ubuntu-fr