#1 Le 10/10/2018, à 05:42
- arcanis112
Script bash de renommage spécifique
Bonjour,
J'ai besoin d'aide pour écrire un script de renommage, voici le principe :
Un répertoire est rempli de fichier du type : DCP_1234.jpg, DCP_1234.JPG avec 1234 des chiffres aléatoires.
Je doit pouvoir renommer tous ces fichiers en la forme photo_1234.jpg
Je suis débutant donc j'ai du mal à voir comment faire, mais je sais qu'il va falloir utiliser les préfixes en arguments.
Je commencerais avec une boucle for afin de traiter tous les fichiers du répertoire :
for fichier in *
do
done
J'ai aussi pu trouver sur le net ce script que j'ai un peu adapter, mais je n'arrive tout de même pas à bien comprendre comment il marche:
nom="fichier"
let "indice=1"
for fichier in *.jpg or *.JPG
do
if [ -f $fichier; then
extension=${fichier##*.}
echo $fichier] "=>" $nom-$indice.$extension
mv $fichier $nom-$indice.$extension
let "indice+=1"
fi
done
Merci d'avance pour votre aide !
Dernière modification par arcanis112 (Le 10/10/2018, à 18:08)
Hors ligne
#2 Le 10/10/2018, à 05:51
- pingouinux
Re : Script bash de renommage spécifique
Bonjour,
rename 's/DCP_/photo_/' *.jpg *.JPG
Hors ligne
#3 Le 10/10/2018, à 05:59
- arcanis112
Re : Script bash de renommage spécifique
Bonjour et merci pour votre réponse ! C'est plus simple que ce que je pensais.
Je me permets de demander de l'aide pour un autre exercice, ou je dois ouvrir un terminal de couleur aléatoire.
Sur le net, j'ai trouvé ça, sauf que je voudrais mettre les couleurs dans un fichier texte afin que le script cherche un couleur aléatoire de ce fichier :
COULEUR=(
FFFFFFFFDDDD # jaune
FFFFFFFFFFFF # blanc
000000000000 # noir
AAAAAAAAAAAA # gris
0000FFFF0000 # vert
)
#Nombre d’éléments dans COULEUR
num=${#COULEUR[@]}
# Un élément au hasard
Element=$(($RANDOM % $num))
# Changement de couleur du terminal
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/background_color "#${COULEUR[$element]}"
gconftool-2 --type string --set /apps/gnome-terminal/profiles/Default/foreground_color "#${COULEUR[$element]}"
# Lancement du terminal
exec /usr/bin/gnome-terminal.distrib "$@"
Dans le fichier texte je rentrerais seulement les codes couleurs ( 0000FFFF0000 par exemple). Comment faire les commande indiqués en commentaires en utilisant le fichier texte ?
Dernière modification par arcanis112 (Le 10/10/2018, à 18:08)
Hors ligne
#4 Le 10/10/2018, à 06:31
- pingouinux
Re : Script bash de renommage spécifique
$ cat couleurs
FFFFFFFFDDDD
FFFFFFFFFFFF
000000000000
AAAAAAAAAAAA
0000FFFF0000
$ coul=$(shuf -n1 couleurs)
$ echo "$coul"
000000000000
$ coul=$(shuf -n1 couleurs)
$ echo "$coul"
FFFFFFFFDDDD
Hors ligne
#6 Le 10/10/2018, à 09:14
- Watael
Re : Script bash de renommage spécifique
+ autre exercice -> autre sujet !!!
comment les futurs lecteurs vont-ils trouver la solution de cette nouvelle question ???
Connected \o/
Welcome to sHell. · eval is evil.
En ligne
#7 Le 10/10/2018, à 10:29
- erresse
Re : Script bash de renommage spécifique
Est-ce que les réponses proposées ici par des "quasi-pros" de la rédaction de scripts bash correspondent vraiment au but recherché pour ces "exercices" ???
Est-ce que le but d'un exercice n'est pas, précisément de se creuser un peu les méninges pour produire un travail personnel ?
Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois le problème solutionné, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.
Hors ligne
#8 Le 10/10/2018, à 18:12
- arcanis112
Re : Script bash de renommage spécifique
Merci pour vos réponses.
Je suis d'accord avec vous, erresse et je vous rassure, je n'ai pas copié bêtement ces scripts, mais ils m'ont permis de comprendre la manière de faire !
D'ailleurs, j'ai procédé différemment pour l'affichage du terminal coloré (utilisation de xterm).
Désolé, j'ai pas pensé à créer un nouveau post, je le ferais la prochaine fois.
En tout cas j'ai réussi à faire ce que je voulais, encore merci et bonne continuation !
Dernière modification par arcanis112 (Le 10/10/2018, à 18:16)
Hors ligne