[<> Respondendo a pergunta conforme solicitado - embora provavelmente não seja a melhor maneira de abordar seu problema real de comparação de datas ]
Uma maneira seria substituir os dois pontos por vez usando um loop, quebrando o loop quando o resultado contiver dois hífens:
echo '2018:01:16 12:25:35' | sed ':a; /^[^-]*-[^-]*-/ b; s/:/-/; ta'
2018-01-16 12:25:35
Alternativamente, se você tem o GNU sed, você poderia substituir all os dois-pontos com hífens, então substituir o terceiro hífen para a frente com os dois-pontos novamente:
echo '2018:01:16 12:25:35' | sed 's/:/-/g; s/-/:/3g'
2018-01-16 12:25:35