Eu usaria awk para isso, não sed :
awk -F';' ' NF {print $0 $1"-"$2}'
Onde:
-
-F';': define o separador do campo de entrada -
NF: é o número de campos usados aqui para filtrar linhas sem campos -
$0: é toda a linha -
$1e$2: são o primeiro e o segundo campos - O resto, eu acho, é autoexplicativo.
Demo:
% echo '2012-01-08;00:00;171,297;0,000;
2012-01-08;00:05;171,297;0,000;
2012-01-08;00:10;171,297;0,000;
2012-01-08;00:15;171,297;0,000;
2012-01-08;00:20;171,297;0,000;
2012-01-08;00:25;171,297;0,000;' | awk -F';' ' NF {print $0 $1"-"$2}'
2012-01-08;00:00;171,297;0,000;2012-01-08-00:00
2012-01-08;00:05;171,297;0,000;2012-01-08-00:05
2012-01-08;00:10;171,297;0,000;2012-01-08-00:10
2012-01-08;00:15;171,297;0,000;2012-01-08-00:15
2012-01-08;00:20;171,297;0,000;2012-01-08-00:20
2012-01-08;00:25;171,297;0,000;2012-01-08-00:25