x s/$/=/ :0 s/^=/1/ s/=/=0123456789=0 / s/\(.\)=.*\1\(=*.\).* /\2/ t0 G s/\(.*\)\n\(.*\)/\1 \2@\1/ :1 s/.\{,40\} /&!/ h s/$/>\x09\x09\x09\x09\x09/ s/\x09/\x09\x09\x09\x09\x09\x09\x09\x09/g :2 s/!.*>\| \|\S\x09// t2 G h s/[^ ]\| !.*//g y/ /\x09/ G s/ !.*// :3 s/\(\n\(\x09*\).*\) /\1\2/ t3 s/\n\x09*// : s/^\(\(\x09*\)\n[^\x09]*\)\2/\1 / t s/\x09\(\S\)/\1\x09/ t s/.*\n//p g s/.* !// /.\{41\}@/b1 h s/.*@// x s/@.*//
Note that non-ascii characters in the above source code will be escaped (such as \x9f).