Tengo que procesar un csv que contiene aproximadamente 15 columnas, una de las cuales contiene una marca de tiempo particular que incluye milisegundos. Cuando voy a insertar este csv en una base de datos, aparece un error debido a este formato de hora en particular. No puedo tocar las otras columnas, pero necesito truncar la salida de la sexta columna y crear un archivo nuevo.
Un ejemplo es:
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
Respuesta1
Suponiendo que desea eliminar los casos :
seguidos de números de la cuarta columna (dice la sexta en su pregunta pero es la cuarta en su ejemplo), puede usar uno de estos:
awk
awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
Perl (esto cambia el archivo real y mantiene el original como
file.csv.bak
)perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv