Se você gosta de awk
try
echo "$INPUT" | \
awk -v OFS=';' '
{for(i=4;$i!="#";i++)
$3=$3 OFS $i
print $(NF-3),$2,$1,$(NF-2),$(NF-1),$3}'
O mesmo que você pode fazer com o GNU sed
echo "$INPUT" | \
sed -r 's/(\S*)( \S* )(.*) # \S* (\S*)( .* )\S*//;s/ /;/g'