view bin/uniq_merge.py @ 91:82c94684f799

working with one input
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Wed, 14 Apr 2021 10:08:41 +0000
parents 464d2dfb99c9
children f5e2211b50bd
line wrap: on
line source

#!/usr/bin/env python3
# Merge counts by key from the output of "uniq -c" 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={}
for l in sys.stdin:
 (i,d)=l.split()
 i=int(i)
 if d in s:
  s[d]+=i
 else:
  s[d]=i
for (d,n) in sorted(s.items(),key=lambda j:j[1],reverse=True):
 print('%5d\t%s'%(n,d))