tfeserver: Blog de tfe

html, scripts et tout un tas de trucs...

Linux script to delete duplicated images (version RSS)

publié le Mon, 23 Jan 2012 13:10:34 GMT, dans la categorie script

Histoire d'inaugurer correctement le nouveau serveur, un petit billet/astuce pour détecter des images en double dans un répertoire, et les supprimer si nécessaire.

Nous allons tout d'abord générer une liste de fichiers avec le hash md5 associé à chaque fichier. Pour cela on utilise find couplé à md5sum:

find /home/user/repertoire -iname '*jpg'|while read n; do md5sum "$n" >> md5sum_images; done

Cette ligne crée un fichier structuré de la forme suivante:

somme1_md5(32_caracteres)    ./nom_de_fichier1
somme2_md5(32_caracteres)    ./nom_de_fichier2
etc...

Il va nous faloir tout d'abord trier les sommes de hashage pour détecter les doublons:

sort md5sum_images > sorted_md5sum_images

Puis détecter les doublons parmis ce nouveau fichier:

uniq -dw 32 --all-repeated=separate sorted_md5sum_images
  1. L'option -d indique de n'afficher que les éléments doublons
  2. L'option -w 32 indique de ne détecter les doublons que sur les 32 premiers caractères
  3. L'option --all-repeated=separate demande d'afficher chaque occurence du doublon et de les séparer par une ligne blanche.

On obtient le résultat suivant:


00a49967be7f43d532db56e1dce595ed  ./reptoire1/DSC00180.JPG
00a49967be7f43d532db56e1dce595ed  ./repertoire2/DSC00180.JPG

00a597f061cabc1ef2af2ffa90948cf5  ./rep3/DSCF0167.JPG
00a597f061cabc1ef2af2ffa90948cf5  ./rep4/DSCF0167.JPG
etc...

Et pour conclure, si on désire supprimer l'ensemble des doublons:

uniq -dw 32  sorted_md5sum_images |cut -d' ' -f 3|xargs rm -v

arnaud

publié le Sun, 29 Jan 2012 17:37:58 GMT

Hello, Pas de solution avec comm ou diff ? :-)

tfe

publié le Thu, 02 Feb 2012 09:23:43 GMT

Y'a de l'idée. J'attends ton patch!

Nouveau commentaire

Pseudo:
Site:
Email:
AntiSpam (2+2=?):
Message:
Validation: