Substituições substituídas por sed?

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
    
por Soumya 20.02.2016 / 02:05

1 resposta

2

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'
    
por 20.02.2016 / 04:20