[Bda] fdyp
skaya@enix.org
skaya@enix.org
Mon, 04 Nov 2002 15:05:45 +0100 (CET)
donc pour ceux qui veulent détecter les doublons dans leur
collec de mp3/divx/... et la comparer avec celle de leurs collègues,
vous pouvez commencer par un :
find /blabla -type f -print0 | xargs --null md5sum > fdyp.csc
attention c'est très long, voire très très long :-)
ensuite y a quelques lignes de python qui prennent 2 fichiers
CSC pour indiquer les fichiers qui existent dans l'un et pas
dans l'autre ; et je suis en train de plancher sur le calcul
incrémental des checksums (en fait c'est surtout la progress
bar qui me prend du temps, je sens que je vais la zapper) :-)
------8<------ fdyp.py prerelease --------------------
#!/usr/bin/python
class fdyp:
def __init__(self):
self.h={}
def load(self,filename,callback=lambda md5sum,oldlist,new:None):
f=open(filename)
for l in f.readlines():
md5,path=l.split(" ",1)
oldlist=self.h.get(md5,[])
callback(md5,oldlist,path)
self.h[md5]=oldlist+[path]
import sys
def newcb(md5sum,oldlist,new):
if not oldlist: print new
mylist,otherslist=sys.argv[1:3]
fi=fdyp()
fi.load(mylist)
fi.load(otherslist,newcb)