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 -
$1
e$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