#1 Le 18/12/2011, à 20:48
- Riicooo
[Script][Astuce] Renommer une sélection de fichiers comme un texte...
Bonjour,
voilà un petit script que j'ai fait pour renommer un groupe de fichier comme si c'était un texte, c'est à dire que le script affichera le noms des fichiers sélectionnés comme un fichier texte, un nom de fichier par ligne, vous pouvez alors changer le texte comme vous voulez, copier coller le texte dans un éditeur pour faire des rechercher/remplacer, ... puis une fois l'édition finie, le script renommera vos fichiers en fonction...
Attention à ne pas modifier l'ordre ou le nombre de ligne !
Il faut zenity pour que le script fonctionne (sudo apt-get install zenity)
Script à coller dans un fichier ~/.gnome2/nautilus-scripts/FileRenamerAsText.sh par exemple, comme ça, en faisant bouton droit sur une série de fichier sélectionnés, le script pourra être lancé :
#!/bin/bash
FileOrig="$(mktemp --suffix=FileRenamerAsText)"
FileMod="$(mktemp --suffix=FileRenamerAsText)"
FileOrigInv="$(mktemp --suffix=FileRenamerAsText)"
FileModInv="$(mktemp --suffix=FileRenamerAsText)"
while [ $# -gt 0 ]
do
find "$1" >> "$FileOrig"
shift
done
cp "$FileOrig" "$FileMod"
zenity --filename="$FileOrig" --width=800 --height=800 --editable --text-info --title='FileRenamerAsText - pas de modifications de nombre de lignes !'> "$FileMod"
tac "$FileOrig" > "$FileOrigInv"
tac "$FileMod" > "$FileModInv"
nbl=$(cat $FileOrigInv| wc -l)
if [ "$nbl" = "$(cat $FileModInv | wc -l)" ]
then
for (( i=1; i <= nbl; i++ ))
do
mv "$(sed -n -e "${i}p" $FileOrigInv)" "$(sed -n -e "${i}p" $FileModInv)"
done
else
zenity --error --text="des lignes ont été supprimées ou ajoutées"
fi
rm $FileOrig
rm $FileMod
rm $FileOrigInv
rm $FileModInv
ne pas oublier de lui donner les droits d'execution avec "chmod +x ~/.gnome2/nautilus-scripts/FileRenamerAsText.sh"
ça pourrait être plus compact, mieux fait, mais ça marche, ...
Dernière modification par Riicooo (Le 18/12/2011, à 21:32)
Hors ligne