Supondo que o contexto é
some-command | sed 's/ /':'/' | sed 's/ /-/' > file.list
Vamos desmembrá-lo, peça por peça. Suponha, por exemplo, que some-command seja echo 'test of the command' .
Em seguida, sed 's/ /':'/' substitui o primeiro espaço por : .
test of the command → test:of the command
Depois disso, sed 's/ /-/' substitui o novo primeiro espaço por -
test:of the command → test:of-the command
Esta transformação é aplicada em cada linha da saída de some-command .
Como mencionado por @Philippos nos comentários, não está claro por que : não está listado aqui. Seria melhor como
some-command | sed 's/ /:/' | sed 's/ /-/' > file.list
Mas sed não está restrito a uma única substituição por instância. Então, melhor ainda é
some-command | sed 's/ /:/; s/ /-/' > file.list