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: