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 :
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 :
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
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.
Partager