Bonsoir débutant Linux ! Je cherchais à te mettre sur une piste mais c'est assez difficile, soit je t'en dirais trop, soit pas assez... Du coup, voici directement le code ! =)
#!/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
Ce code vient du site xavadminsys.blogspot.fr qui est au passage très bien ! En espérant avoir résolu ton problème.
Il y a aussi la commande rename ou perl_rename qui peuvent faire cela facilement :
rename " " "_" *
perl_rename 's/ /_/g' *
- Edité par millman 22 décembre 2014 à 11:38:43
Renommer tous les dossiers
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.