Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/10/2012, à 22:02

Xylo

script tri fichiers et renommage

Bonsoir,
je cherche à pallier à un défaut de shotwell qui envoie les fichers photos et vidéos dans le même répertoire lors de l'importation depuis un APN ou une caméra.

J'ai fait un script qui permet de récupérer les vidéos et de les copier dans un autre répertoire. Seul pb, si des fichiers avec le même nom sont déjà dans ce répertoire, ils sont écrasés et remplacé par le nouveau fichier....ce qui arrive souvent car mes vidéos sont renommées à partir de 00000.MTS après le formatage de ma carte SD.

Je voulais donc améliorer mon mini script actuel et ajouter une étape de renommage afin d'éviter d'avoir 2 fichiers avec le même nom, par exemple en ajoutant la date dans le nom mais je ne sais pas comment procéder.

Voici mon scritp actuel plutôt basique :

#!/bin/bash
cd /home/USER/Images/"REPERTOIRE-IMPORTATION-SHOTWELL"
find . \( -name "*.MTS" -o -name "*.mts" -o -name "*.avi" -o -name "*.AVI" -o -name "*.mpg" -o -name "*.MPG" -o -name "*.mov" -o -name "*.MOV" -o -name "*.wmv" -o -name "*.WMV" \) -exec mv {} /home/USER/Vidéos/"A_trier"/ \;
exit

je pensais passer par un fichier temporaire pour stocker les fichiers avant leur renommage genre /home/USER/Vidéos/tmp/ qui serait effacé une fois l'action de renommage et de copie dans le dossier A_trier effectuée.

Si vous avez une idée plus simple ou une piste je suis preneur, j'avoue galérer un peu avec les scripts shell et malheureusement je n'ai pas le temps actuellement de m'enterrer sur le sujet.

Merci pour vos contrib


Netbook Asus Eeepc 1015BX : Crunchbang Wardolf #! / Debian Wheezy + Xfce
PC fixe : triple boot : Xubuntu 12.04 / Debian squeeze / Seven

Hors ligne

#2 Le 27/10/2012, à 04:55

nesthib

Re : script tri fichiers et renommage

Au lieu d'utiliser une suite de -name avec minuscules et majuscules tu peux utiliser :

-iname '*.avi' -iname …

ou mieux

-iregex '.*.\(avi\|mpg\|mov\)'

pour tester si les fichiers existent déjà, tu peux passer la sortie de find à un bloc de code :

R_SOURCE=/rep/source
R_DEST=/rep/destination
while read fichier
do
  echo "on travaille sur le fichier ${fichier}"
  increment=0
  f="${fichier##*/}"
  f1="${f%.*}"
  f2="${f##*.}"
  while [ -f "${R_DEST}/${f}" ]
  do
        echo "${R_DEST}/${f}" existe déjà
        f="$f1-$((++increment)).$f2"
  done
  mv "${fichier}" "${f}"
done < <(find "${R_SOURCE}" -iregex '.*.\(avi\|mpg\|mov\)')

GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne

#3 Le 27/10/2012, à 15:54

Xylo

Re : script tri fichiers et renommage

Merci nesthib c'est pile poil ce que je voulais. J'ai par contre eu un peu de mal à comprendre mais les fichiers attérissent dans le répertoire d'où est lancé le script (alors que dans mon script tout pourris les fichiers étaient copiés dans un répertoire (toujours le même).
en fait ton script est bien mieux, et il incrémente donc les fichiers quand un fichiers a déjà le même nom dans le répertoire.
Super !
Je vais essayer de comprendre un peu mieux ton script mais il répond parfaitement à ma demande !


Netbook Asus Eeepc 1015BX : Crunchbang Wardolf #! / Debian Wheezy + Xfce
PC fixe : triple boot : Xubuntu 12.04 / Debian squeeze / Seven

Hors ligne

#4 Le 27/10/2012, à 16:28

Postmortem

Re : script tri fichiers et renommage

Salut,
Pour que ça aille dans le repertoire destination, il manque juste le repertoire dans la commande mv :

 mv "${fichier}" "${R_DEST}/${f}"

Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »

Hors ligne

#5 Le 27/10/2012, à 20:19

nesthib

Re : script tri fichiers et renommage

Effectivement, petit oubli. Merci pour la correction.


GUL Bordeaux : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne