从 csv 文件中剪切列的特定部分

从 csv 文件中剪切列的特定部分

我必须处理包含大约 15 列的 csv,其中一列包含包含毫秒的特定时间戳。当我将此 csv 插入数据库时​​,由于这种特定的时间格式,我收到错误。我无法触及其他列,但我需要截断第六列的输出并创建一个新文件。

一个例子是:

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

假设您想删除:第四列中后跟数字的任何情况(您在问题中说的是第六列,但在示例中是第四列),您可以使用以下之一:

  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
    

相关内容