Supprimer espaces, accents dans un nom de fichier

Bonjour à tous.

Qui saurait me dire comment supprimer les espaces, accents dans une floppée de noms de fichiers qu’on m’a fournis, sans devoir les faire un à un ?

Merci d’avance !

Guillaume

regex !
Y a pas mal de sites avec des exemples de manipulation

à utiliser avec sed

sur une boucle bash

for fich in /Ton/Rep/* do --> tes commandes de substitution done

un exemple de script utilisant php :
alexastuces.no-ip.org/blog/post/ … e-fichiers
mais tu peux tres bien le faire en bash avec sed, en perl ou encore en python.

Une fonction en Python qui enlève les accents et autres caractères spéciaux d’une chaîne d’une caractères :

[code]import unicodedata

def clean_string(s):
s = unicode(s, “utf8”, “replace”)
s = unicodedata.normalize(‘NFD’, s)
return s.encode(‘ascii’, ‘ignore’[/code]

bjr il y a aussi des petits utilitaires style detox ou unaccent sous linux

apt-get install…

pour unaccent pas de commentaire

pour detox

Avec les bonnes options, on peut :

  • renommer des fichiers en UTF-8 ou en ISO-8858-1, en remplaçant les caractères accentués par leur équivalent non accentué, les espaces et de nombreux caractères par des underscores, toute séquence de tirets/underscores par un seul underscore, etc.
  • simuler le résultat sans renommer effectivement les fichiers (pratique pour s’assurer du bon fonctionnement avant de faire une catastrophe) ;
  • transformer tous les caractères en minuscules ;
  • etc.
    sans compter les sed , et autres pyrenamer krename rename bon jem’arrete la