Возможны различные подходы.
Условный цикл, который заменяет один пробел за раз:
sed -e :1 -e 's/\(\].*\) /\1:/; t1'
Сохранение префикса, удаление, замена, восстановление префикса:
sed '/\] /{ s//&\
/; h; s/.*\n//; s/ /:/g; H; g; s/\n.*\n//;}'
Ни один из них не будет выполнять подстановку, если входные данные не содержат "] "
.