
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,,,,,
tentei usar sementes
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 executar duas vezes, mas em um arquivo enorme é ineficiente. Como posso corrigir o comando sed?
Responder1
Use 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'