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

Re: Größte Schnittmenge von mehreren Dateien



Moin Tilo!
Tilo Schwarz schrieb am Sonntag, den 07. August 2005:

> >Und mit
> >UTF-8-Locale kannst du sort und grep eh vergessen.
> 
> Da es hier nur auf Gleichheit ankommt, sollte sort | uniq doch trotzdem  
> funktionieren (untested ...)

Sicher, nur um einige Groessenordnungen lahmer. Es gibt AFAIKS
gravierende Performance-Probleme in den coreutils, sobald Multibyte
erlaubt wird.

Probiere es doch mit etwas groesseren Dateien aus - bei 200k Zeilen aus
"locate ." dauert es mit LANG=C ca. 12 Sekunden (auf 2Ghz). Mit
de_DE.UTF-8 jetzt schon einige Minuten und da ist noch kein Ende in
Sicht.

> %perl -ne 'print $_ if ++$seen{$_} > $#ARGV' a.txt b.txt c.txt
> 1
> 2
> 3
> 3
> 5
> 1
> 
> Schnittmenge ist aber
> 1
> 3

Args. Das war die letzte ungetestete Version. Die andere genannte
Alternative tut, was sie soll:

perl -ne 'sub BEGIN{$a=$#ARGV} print $_ if ++$seen{$_} > $a' a.txt b.txt c.txt
3
1

Gruss,
Eduard.
-- 
Citizen G'Kar: Oh, why does the universe hate me.
                                                 -- Quotes from Babylon 5 --



Reply to: