[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: rennommer des fichiers en masse



Nicolas Roudninski a écrit :
> Bonjour à tous,
> 
> J'ai un problème, sans doute de débutant, mais je n'arrive pas à m'en
> sortir.
> 
> Mon problème :
> J'ai une assez large collection de musique organisée en répertoires et
> sous-répertoires du style "artiste/album/fichier_audio"
> Cette collection est sur un serveur debian lenny et j'utilise
> tincanjukebox (php, javascript) pour écouter mes morceaux préférés.
> TinCanjoukebox n'aime pas deux choses : les espaces dans les noms de
> répertoire et de fichier et les caractères accentués.
> 
> Je cherche donc un moyen de renommer en masse et récursivement tous les
> répertoires et fichiers pour :
> - remplacer les espaces par des _
> - remplacer les caractères accentués par les mêmes caractères sans
> accent (i-e é par e, É par E, etc.)
> Je suis en utf-8
> 
> J'ai bien essayé "find /opt/audio/ -name "*" -exec rename 's/\s+/_/g' {}
> \;" mais ça ne fonctionne pas.
> 
> Quelqu'un aurait-il une piste ?
> 
> Cordialement,
> 
> Nicolas Roudninski
> 
> -- 
> Nicolas Roudninski
> nicolas@tycho.fr
> 
> S'il vous plaît, évitez de m'envoyer des pièces jointes au format Word
> ou PowerPoint.
> Voir http://www.gnu.org/philosophy/no-word-attachments.fr.html

Personnellement, j'écrirais un script en utilisant le remplacement de
sous-chaîne, un peu comme ça :

> for file in *
> do
> 
> newname=${file// /_}
> 
> mv "$file" "$newname"
> 
> done


Il faut ensuite écrire un truc similaire pour les caractères non ASCII,
et faire en sorte qu'il parcours les répertoires, mais dans le principe
ça reste simple.


Reply to: