On Thu, 04 Aug 2005 17:56:23 +0200, Ames Andreas <[EMAIL PROTECTED]> 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


--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/

Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)

Antwort per Email an