[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Größte Schnittmenge von mehreren Dateien



Christoph Bersch wrote:

> Hallo,
>
> wie kann ich die größte Schnittmenge von mehreren Dateien ermitteln?

1) Erzeuge die Paketdateien mit:

dpkg --get-selections | grep '[[:space:]]install$' | cut -f 1 >/tmp/pc1.pkgs

usw. (die Dateinamen spielen keine Rolle).

2) Benutze folgendes Pythonscript:

#<script>
files = ["/tmp/pc1.pkgs", "/tmp/pc2.pkgs"]

files_per_line = {}

for f in files:
    for l in file(f):
        # nicht sehr effizient aber kurz
        files_per_line[l] = files_per_line.setdefault(l, 0) + 1

flen = len(files)
for l, i in files_per_line.items():
    if i == flen:
        print l,

#</script>

(Das Komma am Ende verhindert unnötige Leerzeilen).  Trage in die
Variable 'files' alle deine oben erzeugten Dateinamen ein und lass das
Script laufen.

3) Das ganze ist weitgehend ungetestet und könnte deinen Rechner
   ernsthaft gefährden, es gibt angeblich auch Leute, die nach seiner
   Anwendung einen Arzt aufsuchen mussten.  Dies ist ein Schnellschuss
   und kein besonders guter (z.B. können Leerzeilen in den
   Paketdateien mit ausgegeben werden, falls eine Zeile in einer
   Paketdatei mehrmals vorkommt, wird sie u.U. auch ausgegeben etc.).

HTH,

aa

-- 
Andreas Ames | Programmer | Comergo GmbH | 
Voice:  +49 69 7505 3213 | andreas . ames AT comergo . com

Reply to: