Você precisa usar um loop com sed:
sed 's/^,/0,/; :a; s/,,/,0,/g; ta'
Documentado aqui: link
Mas eu usaria perl ou awk
perl -pe 's/(?:^|,)\K(?=,|$)/0/g'
awk -F, -v OFS=, '{for (i=1; i<=NF; i++) if ($i == "") $i=0};1'
Suponha que eu tenha uma string de entrada:
,,a,b,c,,,,d,e,f,,,g
Existe um comando sed simples que pode inserir algo entre cada par de vírgulas consecutivas? Ou seja, o que posso usar para converter a string de entrada em:
0,0,a,b,c,0,0,0,d,e,f,0,0,g
Você precisa usar um loop com sed:
sed 's/^,/0,/; :a; s/,,/,0,/g; ta'
Documentado aqui: link
Mas eu usaria perl ou awk
perl -pe 's/(?:^|,)\K(?=,|$)/0/g'
awk -F, -v OFS=, '{for (i=1; i<=NF; i++) if ($i == "") $i=0};1'
Tags sed find-and-replace