Mercurial > hg > cc > cirrus_home
changeset 158:f5e2211b50bd
do whole line
author | Henry S. Thompson <ht@inf.ed.ac.uk> |
---|---|
date | Wed, 06 Jul 2022 18:00:53 +0100 |
parents | cac9586291ad |
children | c3c3dd60b8a8 |
files | bin/uniq_merge.py |
diffstat | 1 files changed, 6 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/uniq_merge.py Mon Jul 04 18:14:41 2022 +0100 +++ b/bin/uniq_merge.py Wed Jul 06 18:00:53 2022 +0100 @@ -1,16 +1,13 @@ #!/usr/bin/env python3 -# Merge counts by key from the output of "uniq -c" and sort in descending order +# Merge counts by key from the output of "uniq -c" (or sus) and sort in descending order # An alternative to sus when the scale is too big for the initial sort, or if uniq -c already does a lot # of the work # Usage: ... | uniq -c | uniq-merge.py import sys -s={} +from collections import defaultdict +s=defaultdict(int) for l in sys.stdin: - (i,d)=l.split() - i=int(i) - if d in s: - s[d]+=i - else: - s[d]=i + (i,d)=l.split(maxsplit=1) + s[d]+=int(i) for (d,n) in sorted(s.items(),key=lambda j:j[1],reverse=True): - print('%5d\t%s'%(n,d)) + sys.stdout.write('%5d\t%s'%(n,d))