#!/bin/sed s/.*/lol/ : loop s/^\([^l]*\)l*o\([lo]*\)\(\n.*\)\?$/\1a\2\3\nx\2o\nx\2o+\2=\nx\2oo+\2=/ : 2->10 s/[f-j]/#&/g s/[a-j][#l]/\U&/g y/AbBcCdDeEfFgGhHiIjJ/bcdefghijabcdefghij/ s/^#/b/m s/#//g s/\([a-j]\)[Lo]/\1/ /[a-j][lo]/ b 2->10 y/abcdefghij/0123456789/ : add s/\([xo]l*\)l+\([lo]*\)l=/\U\1\E+\2=o/g s/X/xl/g y/LO/ol/ s/l+\([lo]*\)o=/+\1=l/g s/o+\([lo]*\)\([lo]\)=/+\1=\2/g s/+=//g t add s/^x\([lo]*\)$/\U\1\Eo\1/gm y/LO/ll/ : sort s/^\([lo]*\)\n\1$/\1/gm s/^\(\([lo]*\)l[lo]*\)\n\(\2o[lo]*\)$/\3\n\1/gm t sort s/^\(\(\w*\n\)\{99\}\w*\)\n.*$/\1/ /[lo]/ b loop