Bonjour,

En m'appuyant sur ce que j'ai trouvé ici et ailleurs, j'ai fait une fonction bash pour renommer les fichiers en partant d'un "find".

La fonction est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function common_renomme_propre
{    
    newfile=$(echo "$1" | sed -e "y/\/ÀÂÄâäàÊËÈÉéèêëÎÏîïÔÖôöÛÜûüùŶŸŷÿ/\/AAAaaaEEEEeeeeIIiiOOooUUuuuYYyy/; s/[ \t]/_/g; s/[^\/0-9a-zA-Z_.-]//g")
    if [ "$1" != "$newfile" ]; 
    then
        echo "====================================" && echo "N'existe pas $1" && echo "===================================="
        # cp -v "$0" "$newfile" >/dev/null 2>&1
        echo $1
        echo $newfile
        mv -v "$1" $(echo "$1" | sed -e "y/\/ÀÂÄâäàÊËÈÉéèêëÎÏîïÔÖôöÛÜûüùŶŸŷÿ/\/AAAaaaEEEEeeeeIIiiOOooUUuuuYYyy/; s/[ \t]/_/g; s/[^\/0-9a-zA-Z_.-]//g")
    else
        echo "existe       $1"
    fi
}
export -f common_renomme_propre
Cette fonction est appelée de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
find $source -type f -name "*.*" -exec bash -c 'common_renomme_propre "$0"' {} \; ;
Là où je ne comprend plus, c'est que j'ai comme résultat du mv un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
mv: impossible de déplacer '/home/aenean/essai/mediacenter/Vidéos/1._normal/documentaires/nom du fichier.xxx' vers '/home/aenean/essai/mediacenter/Videos/1._normal/documentaires/nom_du_fchier.xxx': Aucun fichier ou dossier de ce type
alors que $1 et $newfile sont bien reconnus.

Si quelqu'un peut éclairer ma lanterne, je l'en remercie par avance.