Eu geralmente importo dados de arquivos csv para o MySQL, mas meu provedor de dados deixa as entradas NULL como "", então eu preciso substituir "" por "\ N". Isso é bastante fácil com um script como
for csvfile in *.csv
do
sed -i -e 's/^,/\N,/' -e 's/,$/,\N/' -e 's/,,/,\N,/g' -e 's/,,/,\N,/g' $csvfile
done
No entanto, eu tenho um arquivo csv com vírgulas, então a importação falha. Eu tenho o arquivo como "delimitado por tabulações" e tentei
for txtfile in *.txt
do
sed -i -e 's/^\t/\N\t/' -e 's/\t$/\t\N/' -e 's/\t\t/\t\N\t/g' -e 's/\t\t/\t\N\t/g' $txtfile
done
Mas ainda assim falha (até onde eu posso dizer, o script não adiciona nenhum "\ N"). Quando abro o arquivo delimitado por tabulações no Vim e digito :set list
, parece que as guias são armazenadas como "^ I". Tentei substituir "\ t" por "\ ^ I", mas não adiciono os caracteres "\ N" NULL de que preciso.
Alguma ideia? Obrigado!