Parece que seus campos são definidos por vírgulas. Se assim for, você pode fazer isso em sed
:
sed -i -r 's/",([^,]*)$/,""/' file
Ou, em Perl:
perl -i -lpe 's/",([^,]*)$/,""/' file
Em ambos os casos, o regex simplesmente procura uma vírgula e, em seguida, 0 ou mais não-vírgulas até o final da linha. Os parênteses capturam os últimos campos aos quais podemos nos referir como
(ou
em perl). Este é então substituído por si mesmo entre aspas duplas. O -i
é para editar o arquivo no lugar, as alterações são feitas no arquivo original.
Você também pode usar awk
:
awk -F, -vOFS=, '{sub(/"/,"",$(NF-1)); $NF="\""$NF"\""}1;' file
Ou, se sua versão for compatível:
awk -iinplace -F, -vOFS=, '{sub(/"/,"",$(NF-1)); $NF="\""$NF"\""}1;' file