<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/xsl/blog.xsl"?>
<!-- Comm..........
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
....................................................................................
-->
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel> 
<title>Linux script to delete duplicated images / Blog  - tfeserver: Blog de tfe</title> 
<description>html, scripts et tout un tas de trucs...</description> 
<link>http://www.tfeserver.fr</link> 
<generator>Perl</generator> 


<item>
    <guid>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml</guid>
    <link>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml</link>
    <pubDate>Mon, 23 Jan 2012 13:10:34 GMT</pubDate>
    <title><![CDATA[Linux script to delete duplicated images]]></title>
    <description><![CDATA[<p>Histoire d'inaugurer correctement le <a href="http://www.kimsufi.com/fr/">nouveau serveur</a>, un petit billet/astuce pour détecter des images en double dans un répertoire, et les supprimer si nécessaire.</p>

<p>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:</p>
<pre>find /home/user/repertoire -iname '*jpg'|while read n; do md5sum "$n" >> md5sum_images; done</pre>


<p>Cette ligne crée un fichier structuré de la forme suivante:</p>
<pre>
somme1_md5(32_caracteres)    ./nom_de_fichier1
somme2_md5(32_caracteres)    ./nom_de_fichier2
etc...
</pre>

<p>Il va nous faloir tout d'abord trier les sommes de hashage pour détecter les doublons:</p>
<pre>sort md5sum_images > sorted_md5sum_images</pre>

<p>Puis détecter les doublons parmis ce nouveau fichier:</p>
<pre>uniq -dw 32 --all-repeated=separate sorted_md5sum_images</pre>
<ol>
<li>L'option -d indique de n'afficher que les éléments doublons</li>
<li>L'option -w 32 indique de ne détecter les doublons que sur les 32 premiers caractères</li>
<li>L'option  --all-repeated=separate demande d'afficher chaque occurence du doublon et de les séparer par une ligne blanche.</li>
</ol>

<p>On obtient le résultat suivant:</p>
<pre>

00a49967be7f43d532db56e1dce595ed  ./reptoire1/DSC00180.JPG
00a49967be7f43d532db56e1dce595ed  ./repertoire2/DSC00180.JPG

00a597f061cabc1ef2af2ffa90948cf5  ./rep3/DSCF0167.JPG
00a597f061cabc1ef2af2ffa90948cf5  ./rep4/DSCF0167.JPG
etc...
</pre>

<p>Et pour conclure, si on désire supprimer l'ensemble des doublons:</p>
<pre>uniq -dw 32  sorted_md5sum_images |cut -d' ' -f 3|xargs rm -v</pre>




]]></description>
    <author>tfe</author>
    <category>script</category>
</item>

<item>
    <guid>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml#com1361</guid>
    <link>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml#com1361</link>
    <pubDate>Sun, 29 Jan 2012 17:37:58 GMT</pubDate>
    <title><![CDATA[arnaud]]></title>
    <author><![CDATA[arnaud]]></author>
    <description><![CDATA[Hello,

Pas de solution avec comm ou diff ?

:-)]]></description>
    <category>Comment</category>
</item>
<item>
    <guid>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml#com1362</guid>
    <link>http://www.tfeserver.fr/blog/Linux_script_delete_duplicated_images.xml#com1362</link>
    <pubDate>Thu, 02 Feb 2012 09:23:43 GMT</pubDate>
    <title><![CDATA[tfe]]></title>
    <author><![CDATA[tfe]]></author>
    <description><![CDATA[Y'a de l'idée. J'attends ton patch!]]></description>
    <category>Comment</category>
</item>

    <item>
        <guid>http://www.tfeserver.fr/blog.xml</guid>
        <link>http://www.tfeserver.fr/blog.xml</link>
        <pubDate>Wed, 25 Jan 2006 08:22:10 GMT</pubDate>
        <title>Blog</title>
        <description>Blog</description>
        <category>internal</category>
    </item>
    <item>
        <guid>http://www.tfeserver.fr/archives.xml</guid>
        <link>http://www.tfeserver.fr/archives.xml</link>
        <pubDate>Wed, 25 Jan 2006 08:22:10 GMT</pubDate>
        <title>Archives</title>
        <description>Archives</description>
        <category>internal</category>
    </item>
    <item>
        <guid>http://www.tfeserver.fr/download.xml</guid>
        <link>http://www.tfeserver.fr/download.xml</link>
        <pubDate>Wed, 25 Jan 2006 08:22:10 GMT</pubDate>
        <title>Download</title>
        <description>Download</description>
        <category>internal</category>
    </item>
    <item>
        <guid>http://www.tfeserver.fr/liens.xml</guid>
        <link>http://www.tfeserver.fr/liens.xml</link>
        <pubDate>Wed, 25 Jan 2006 08:22:10 GMT</pubDate>
        <title>Liens</title>
        <description>Liens</description>
        <category>internal</category>
    </item>

</channel>

</rss>

