Corte uma parte específica de uma coluna de um arquivo csv

Corte uma parte específica de uma coluna de um arquivo csv

Eu tenho que processar um csv contendo cerca de 15 colunas, uma das quais contém um carimbo de data/hora específico que inclui milissegundos. Quando vou inserir este csv em um banco de dados, recebo um erro devido a esse formato de hora específico. Não consigo mexer nas outras colunas, mas preciso truncar a saída da 6ª coluna e criar um novo arquivo.

Um exemplo é:

73306758;Da Lavorare;;20300;RESTAROC;10/10/2014 16:37:22.425;PALAGIANO;TA;PUGLIA;;Libretto;IDENTITA;AI2000000;OK;DOC Valido;0;0;CCCMNN85X26X251X;OK;CF Attribuito;0;0

Responder1

Supondo que você queira remover quaisquer casos :seguidos de números da 4ª coluna (você diz o 6º na sua pergunta, mas é o 4º no seu exemplo), você pode usar um destes:

  1. estranho

    awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
    
  2. Perl (isso altera o arquivo real e mantém o original como file.csv.bak)

    perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv
    

informação relacionada