Bonjour à tous,
Je cherche à me faire un petit script pour automatiser les conversions de documents et images d’un format vers un autre en utilisant convert. Vous ne vous étonnerez pas, j’aime les scripts interactifs, j’aime quand la machine “parle”.
Je suis obligé de passer par deux étapes :
- Convertir
- Renommer (retirer l’ancienne extension du titre du fichier)
Dans le script, un premier « for file in “${@}” » considère les fichiers à convertir. Ce que je voudrais, c’est que la seconde commande ligne 19 me permette de désigner les mêmes fichiers alors que je viens de supprimer l’extension de leur titre (ex : toto.pdf --------> toto.)
#!/bin/bash
#Automatisation de convert (Imagemagick)
#
echo -e "\E[6;1m----- PROGRAMME DE CONVERSION IMAGE/DOCUMENT ------\E[6;0m"
echo -e "\E[6;1mLes fichiers à convertir sont :\E[6;0m"
for file in "${@}" #Première commande
do echo -e "${file}"
done
echo -e "\E[6;1mVoulez-vous lancer la conversion ?\E[6;0m"
read choix
case $choix in
[OoYy]*) echo -e "\E[6;1mVers quel format ?\E[6;0m"
read nextension
echo -e "\E[6;1mProcédure préventive de renommage : Quel est le format actuel des fichiers ?\E[6;0m"
read aextension
rename 's/\.'$aextension'$/\./' *.$aextension
echo -e "\E[6;1mExtension format supprimée du nom des fichiers\E[6;0m"
echo -e "\E[6;1mVerbose de la conversion :\E[6;0m"
for file in "${@}" #Commande qui ne va pas ! Elle désigne des fichiers qui n'existent plus.
do convert -verbose -density 1000x1000 "${file}" "${file}.${nextension}"
done
echo -e "\E[6;1mConversion terminées\E[6;0m"
exit 0;;
[Nn]*) echo -e "\E[6;1mFichiers non convertis\nFin du programme\E[6;0m"
exit 0;;
esac
Je suis obligé de supprimer l’extension de manière “préventive”, car sinon j’obtiens, pour l’exemple d’une conversion de pdf vers pdf, un fichier « toto.pdf.pdf »… et pour faire comprendre à rename de renommer en masse les « *.pdf.pdf » en « *.pdf »…
Quelqu’un aurait-il une idée ?
PS : il s’agit de l’adaptation de ce script (même principe mais pour ffmpeg ) : Rename et $