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

Re: Größte Schnittmenge von mehreren Dateien



On Thu, 04 Aug 2005 17:56:23 +0200, Ames Andreas <Andreas.Ames@comergo.com> wrote:

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>

Oder:

from sys import stdout
from sets import Set
files = ["/tmp/pc1.pkgs", "/tmp/pc2.pkgs"]
sets = [Set(file(f).readlines()) for f in files]
intersection = reduce(lambda x,y: x & y, sets)
stdout.writelines(intersection)

Viele Grüße,

    Tilo



Reply to: