merging uniq -c lists

ndemou at gmail.com ndemou at gmail.com
Thu Dec 27 18:24:13 EET 2007


αφού ξεπέρασα το πρώτο σοκ με το ότι το python script έβγαζε αρλούμπες
(έφταιγε το byte limit στην readlines) μπορώ να πω ότι:

 α) και τα δύο scripts (awk και python) δουλεύουν άψογα (το περιμένατε
αυτό όμως)
 β) just for the record το awk είναι 3-4 φορές ταχύτερο (και το "awk
... | sort -nr" 2 φορές ταχύτερο από ένα "αφυδατωμένο" και
τροποποιημένο python script με sorting[1]).

αυτή τη στιγμή το awk script είναι το τέλειο copy-paste hack
(ευχαριστώ v13) αλλά αν ο αλγόριθμος αναπτυχθεί ακόμα περισσότερο θα
περάσω σε python (ευχαριστώ Γιώργο) επειδή κατέχω μόλις τις βασικές
γνώσεις σχετικά με bash scripting και μέχρι πριν λίγο καμία γνώση
σχετικά με awk scripting :)

_________________________________
[1]
import sys
    uniq = {}
    for l in sys.stdin.readlines():
        count = int(l.split()[0])
        tag = l.split()[1]
        try:
            count += int(uniq[tag])
        except KeyError:
            pass
        uniq[tag] = int(count)
    for l in sorted(uniq.items(), lambda x, y: cmp(x[1], y[1]),reverse=True):
        print l[1],l[0]


More information about the Linux-greek-users mailing list