Como posso substituir uma string em um arquivo?

0

Eu tenho a seguinte linha em um arquivo, gostaria de inserir \N entre duas vírgulas

20121128020001,2012-11-28 02:00:01.000,,,,,,,3.80,,,,,

Eu tentei usar a semente

sed -i 's/,,/,\N,/g' Test.CSV

Onde obtenho o seguinte resultado:

0121128020001,2012-11-28 02:00:01.000,\N,,\N,,\N,,3.80,\N,,\N,,

Eu poderia rodar duas vezes, mas em um arquivo enorme é ineficiente. Como posso consertar o comando sed?

    
por OHLÁLÁ 05.01.2015 / 14:08

1 resposta

2

Use o Perl com lookaheads, para que a segunda vírgula não faça parte da correspondência:

perl -pe 's/,(?=,)/,\N/g'

Ou use a mesma expressão duas vezes na mesma linha:

sed 's/,,/,\N,/g;s/,,/,\N,/g'
    
por 05.01.2015 / 14:12

Tags