#!/bin/bash # # script de renommage de repertoires et de fichiers en recursif # enlève les caractères non ascii pour des caractère ascii # ex: é -> e # # Owner : Largey Patrick Switzerland # patrick.largey@nazeman.org # www.nazeman.org # # Licence : GNU GPL # # Copyright (C) Nazeman # # Ver.: 0.9 Date : 13.02.2003 # Debut du script en commencant par les répertoire # plus compliqué que je ne le pensais .. :-P # # Variable # i=0;j=0;f=0;g=0;h=0;k=0 while [ -f "listing_directory"$g ] do g=$(($g + 1)) done dirlist="listing_directory"$g while [ -f "rename-dir-log"$f".sh" ] do f=$(($f + 1)) done dirlog="rename-dir-log"$f".sh" while [ -f "listing_file"$h ] do h=$(($h + 1)) done filelist="listing_file"$h while [ -f "rename-file-log"$k".sh" ] do k=$(($k + 1)) done filelog="rename-file-log"$k".sh" # # fonction pour renomme les repertoire # renamedir() { echo -e "comptage de nombre de repertoire à renommer : \c" while [ $# -gt 0 ] do file_actual="$1" file_futurs1=`echo ${1%/*}` file_futurs2=`echo ${1##*/} | tr \'\(\)\ \é\è\ê\à\ä\ï\°\ö\ü ____eeeaaioou` file_futurs="$file_futurs1/$file_futurs2" if [ "$file_actual" != "$file_futurs" ] then echo mv \""$file_actual"\" \""$file_futurs"\" >> $dirlog i=$(($i + 1)) echo -e "$i \c" fi shift done echo -e "\nnombre de répertoires à changer = $i" } # # fonction pour renomme les fichiers # renamefile() { echo -e "comptage de nombre de fichier à renommer : \c" while [ $# -gt 0 ] do file_actual="$1" file_futurs1=`echo ${1%/*}` file_futurs2=`echo ${1##*/} | tr \'\(\)\ \é\è\ê\ë\à\ä\ï\°\ö\ô\ü ____eeeeaaiooou` file_futurs="$file_futurs1/$file_futurs2" if [ "$file_actual" != "$file_futurs" ] then echo mv \""$file_actual"\" \""$file_futurs"\" >> $filelog j=$(($j + 1)) echo -e "$j \c" fi shift done echo -e "\nnombre de fichier à changer = $j" } # # Change les repertoire selon le log # applydircorr() { chmod +x $dirlog ./$dirlog chmod -x $dirlog } # # Change les fichiers selon le log # applyfilecorr() { chmod +x $filelog ./$filelog chmod -x $filelog } # # lancement du script # find . -type d -print | grep "^\.\/" | sed 's/\ /?/g' | sort -ur > $dirlist renamedir `cat $dirlist` rm $dirlist find . -type f -print | sed 's/\ /?/g' | sort -ur > $filelist renamefile `cat $filelist` rm $filelist # # confirmation # if [ $i -gt 0 ] then echo -e "Voulez vous renommer ces $i repertoires Oui/Non : \c" read choix case $choix in [oOyY]*) applydircorr ;; *) ;; esac else echo "rien à faire" fi if [ $j -gt 0 ] then echo -e "Voulez vous renommer ces $j fichiers Oui/Non : \c" read choix case $choix in [oOyY]*) applyfilecorr ;; *) ;; esac else echo "rien à faire" fi