Renommer une série de fichiers


Renommer un ensemble de fichiers avec bash et zenity


En quelques lignes on crée un script avec une interface graphique.

 

Ce script permet de renommer une série de fichiers selon le format suivant :

 

<compteur> <nom.extension>


 

 #!/bin/bash


# ---------------------------------------------
# fonction sélection du répertoire des fichiers
# ---------------------------------------------
sel_repert() {
repert=$(zenity --file-selection --directory)
cd $repert
}
 # --------------------------------------------------
# fonction saisie du filtre de sélection de fichiers
# --------------------------------------------------
sel_fich() {
filtre=$(zenity --entry --title "Sélection de fichiers"
--text "sélection des fichiers à renommer \n
* remplace une chaîne de n importe quelle longueur \n
ex : *.jpg = tous les fichiers avec extension jpg \n
* = tous les fichiers \n
*.* = tous les fichiers avec une extension \n\n\n" )
}
# -------------------------------
# fonction du nom de remplacement
# -------------------------------
remplace() {
nouvnom=$(zenity --entry --title "Nouveau nom"
--text "Saisie du nouveau nom avec extension \n
ex : naissance bb.jpg \n \n" )
}
# ------------------------------
# Saisie de l'indice du compteur
# ------------------------------
indice() {
compt=$(zenity --entry --title "Début du compteur"
--text "Saisie de l'indice de début de compteur \n
si l'on veut un compteur avec 4 chiffres, commencer à 1000 \n
ex : 2500 \n \n" )
}

# ----------------------------------------
# fonction Visualisation des modifications
# ----------------------------------------
visu() {
cat >$HOME/.zen/renfich
cpt=$compt
for fichier in $filtre
do
echo "$fichier" >>$HOME/.zen/renfich
echo " = " >>$HOME/.zen/renfich
echo "$cpt $nouvnom" >>$HOME/.zen/renfich
let "cpt+=1"
done
zenity --list --column="Ancien nom" --column="=" --column="Nouveau nom" --title="Visualisation"
--height=300 --width=700 --text "" <$HOME/.zen/renfich
}

# -------------------------------
# fonction Renommage des fichiers
# -------------------------------
modif() {
cpt=$compt
for fichier in $filtre
do
mv "$fichier" "$cpt $nouvnom"
let "cpt+=1"
done
}

# -----------------
# Boucle principale
# -----------------
while true ;
do
code=$(zenity --list --column=code --column=designation --title="M E N U"
--width=700 --height=350 --hide-header --hide-column=1
--text="Renomme une série de fichiers selon le format suivant : XXXX NOM.EXT \n \n \n"
1 "Répertoires des fichiers à renommer : $repert"
2 "Sélection des fichiers : $filtre"
3 "Saisie du nom de remplacement : $nouvnom"
4 "Saisie de l'indice de début de compteur : $compt"
5 "Visualisation des modifications"
6 "Renommer les fichiers"
7 "Quitter" )

case $code in
1) sel_repert ;;
2) sel_fich ;;
3) remplace ;;
4) indice ;;
5) visu ;;
6) modif ;;
7) break ;;
esac

done

 

    

Le menu donne accès à la saisie des paramètres de renommage.

 

 

 

 

 

 
 
 
L'option "renommer les fichiers" du menu principal va valider vraiment les modifications des noms des fichiers.
 

07/02/2012
0 Poster un commentaire

Ces blogs de Informatique & Internet pourraient vous intéresser