Вырезать определенную часть столбца из CSV-файла

Вырезать определенную часть столбца из CSV-файла

Мне нужно обработать csv, содержащий около 15 столбцов, один из которых содержит определенную временную метку, включающую миллисекунды. Когда я пытаюсь вставить этот csv в базу данных, я получаю ошибку из-за этого конкретного формата времени. Я не могу трогать другие столбцы, но мне нужно обрезать вывод 6-го столбца и создать новый файл.

Вот пример:

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

решение1

Предполагая, что вы хотите удалить все случаи, когда :за ними следуют цифры из 4-го столбца (в вашем вопросе вы говорите 6-й, но в вашем примере это 4-й столбец), вы можете использовать один из следующих способов:

  1. awk

    awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
    
  2. Perl (это изменяет фактический файл и сохраняет оригинал как file.csv.bak)

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

Связанный контент