dimanche 9 novembre 2014

Renommer des dossiers récursivement


#!/bin/bash
#
# script bash récursif de renommage de dossiers
# - remplacement d'espace par underscore
# - suppressions des accents
#
# attention : ce script agit sur toute la sous-arborescence
# d'un dossier et va modifier chaque nom de dossier

# enlever -i derrière la commande mv pour enlever la confirmation
 

renommer() {
  for i in *
  do
    if test -d "$i"
    then
      avant="$i"
      apres="$(echo "$i" | sed 's/ /_/g' |
                           sed "s/'/_/g" |
                           sed 's/[àâ]/a/g' |
                           sed 's/[ç]/c/g' |
                           sed 's/[éè]/e/g' |
                           sed 's/[ï]/i/g' |
                           sed 's/[ô]/o/g' |
                           sed 's/ù/u/g')"

# pour passer les majuscules en minuscules
# utiliser la commande tr (translate)
      if [ ! "$avant" = "$apres" ] ; then
       echo "$avant"
       echo "$apres"
       echo
       mv -i "$avant" "$apres"
       cd "$apres"
       else
       cd "$avant"       
      fi
      renommer
      cd ..
    fi
  done
}

renommer

Aucun commentaire:

Enregistrer un commentaire