renommage et filtrage de fichiers

Philippe Jacquot philippe.j at sparx.com
Thu Jun 1 18:44:28 CEST 2006


Hello

Si je comprend bien, tu veux renommer/déplacer chaque image "doublonnée" ?
Si tu fais un bête "sort -u" sur ton fichier doublons.file, tu te 
retrouveras avec une seule occurance par groupe d'images. Il suffit de 
boucler sur ces lignes et copier une à une tes images. Par exemple (en 
bash):
count=0; grep -v ^$ doublons.file | sort -u | while read -r line; do 
idx=$(printf %08d $count); filename="${line%.*}"; fileext="${line##*.}"; 
echo -n "Copying $filename as $idx.$ext........."; cp "$line" 
"${count}.${ext}"; echo "done"; done

En bloc, ça donnerait:
count=0
grep -v ^$ doublons.file | sort -u | while read -r line; do
   count=$((count+1))
   idx=$(printf %08d $count)
   filename="${line%.*}"      # not used. just in case.
   fileext="${line##*.}"
   echo -n "Copying $filename as $idx.$ext........."
   cp "$line" "${count}.${ext}"
   echo "done"
done

ATTENTION: ce code n'est pas à utiliser tel quel; je ne l'ai pas testé, 
c'est juste pour donner une idée.
Pour tester, mettre le code dans un fichier blahblah.sh en commentant la 
ligne "cp" et lancer par bash -x.




Bayrouni a écrit :
> Bonjour à tous,
>
> J'ai plusieurs reps du genre /mpeg, /video/, /photo qui 
> contiennent d'autres reps qui contiennent des fichiers jpg, 
> et mov (en fait des mpeg).
>
> Ces reps ont été remplit à fur et à mesure en copiant 
> littéralement le contenu de la mémoire CF (card flash) de 
> l'APN (appareil photo numérique)  sur le disque dur.
>
> En résumé dans chacun de mes reps, il y des sous-reps créés 
> par l'APN qui contiennent des images et des séquences mpeg.
>
> D'autres fichiers inutiles ont été créés par l'APN, que j'ai 
> balayé avec un simple find ... -exec rm ...
>
> Ces centaines de reps (oui 1 ans de photos et de videos 
> copiés sans vergogne sur le HD sans jamais avoir fait le 
> moindre effort de faire un peu d'ordre.
> Mais puisque à chaque chose il y a une fin, je me suis 
> décidé, il y a peu à m'organiser, sinon je cours droit vers 
> la catastrophe le jour ou les diques durs sur lesquelles se 
> trouvent ce trésor tomberotn en panne ou si involontairement 
> je fais un rm -rf (que je fais d'ailleurs très souvent en 
> créant et en detruisant des repertoires éphemeres).
>
> Une fois organisé, je pourrais envisager de faire des 
> sauvegardes car dans l'état actuel c'est impossible, j'ai 
> déjà saturé 3 disques durs de très grandes capacité chacun 
> dédiés tous uniquement aux photos et video de la camera, ou 
> regne un désordre chaotique comparable au climat qui régnait 
> sur la terre quelques milliers voir millions d'années seulement.
>
> Alors j'ai déjà entamé et finit la première étape grâce au 
> programme fdupes qui me permet de lister tous les doublons 
> en fonctions des répértoires passés en paramètres.
> Les doublons sont repérés grâce à une comparaison de la 
> taille, une comparaison de la signature md5 et une 
> comparaison bit par bit. (ce qui accèlère énormément les 
> clcules, on commence d'abord par éliminer les fichiers dont 
> la taille ne correspond pas, et s'il s'agit de la meme 
> taille alors on calcule la signature et seulement après un 
> matching de la signature on fait la comparaison bit par 
> bit).  Ceci dit je me pose la question du pourquoi du calcul 
> bit par bit et est-ce que le md5 n'aurait pas été suffisant 
> pour la conclusion de l'égalité entre de fichiers.
>
> Je dispose au final d'une liste contenant des fichiers 
> doublons avec leurs chemins groupés et séparés par des 
> lignes vides.
> En voici un extrait:
> /photo/camera10/jvc/dcim/100jvcso/pic_0050.jpg
>
> /photo/camera9/jvc/dcim/100jvcso/pic_0049.jpg
> /photo/camera10/jvc/dcim/100jvcso/pic_0049.jpg
>
> /photo/camera_30/dcim/100jvcso/pic_0029.jpg
> /photo/camera900/dcim/100jvcso/pic_0029.jpg
> /photo/camera910/dcim/100jvcso/pic_0029.jpg
> /photo/camera_920/dcim/100jvcso/pic_0029.jpg
>
> /photo/camera810/sd_video/prg001/mov01a.mod
> /photo/camera800/sd_video/prg001/mov01a.mod
>
>
>
>
> Donc j'ai pour l'instant une liste des doublons dans un 
> fichies que j'appelle doublons_list.
>
> Ce que je voudrais faire c'est de prendre le premier fichier 
> (par exemple) de chaque groupe, de le renommer (afin qu'il 
> n'écrase pas un autre fichier portant le meme nom) avec un 
> nom du genre 000000001, 000000002, ... et le mettre dans un 
> repertoire propre afin de tout simplement de faire des rm 
> -rf sur tous ces reps, /video, /mpeg /photo dont je n'aurai 
> plus aucun besoin,  et de gagner beacoup en clarté d'une 
> part et en espace disque d'autre part.
>
> Voilà, je m'excuse d'avoir été très long, c'était juste 
> parce ce que je tiens vraiment à ces milliers de photos et 
> de mpeg et je ne voudrais pas les perdre en expliquant mal 
> ou peu le problème.
>
> Je pense à sed, awk et autres outils GNU, mais je n'ose pas 
> en tant que débutant les appliquer sur un nombre  aussi 
> grand de fichier souvenir que je perdrais à tout jamais.
>
> Merci beaucoup pour une réponse ou des parties de réponse.
>
> a +
>   



More information about the Shell mailing list