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 $