我必须处理包含大约 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
假设您想删除:
第四列中后跟数字的任何情况(您在问题中说的是第六列,但在示例中是第四列),您可以使用以下之一:
awk
awk -F';' -v OFS=";" '{sub(/\.[0-9]*$/,"",$6);}1;' file.csv > new.csv
Perl(这会更改实际文件并保留原始文件
file.csv.bak
)perl -i.bak -F';' -ane '$F[5]=~s/\.[0-9]*$//; print join ",", @F' file.csv