s/-//g : s/\(\S\)\(.* \)*\(\S*\1\S*\)/\3\2/ t s/\S\+/ & /g h :1 s/\S* \| \(\S\)/\1 /g H t1 g s/\s*$/!ABCDEFGHIJKLMNOPQRSTUVWXYZ/ s/ .* / / s#!.*#\n./0123456789:;<=>?@&[\\]^_`\L&{|}~# :2 s/.* \|\(.\)\(.\)\(.*\2.*\1\)/\2\1\3/ t2 P d