awk 在几个地方添加了额外的逗号

awk 在几个地方添加了额外的逗号

我想使用 awk 将时间戳添加到 CSV 文件中。生成时间戳是有效的,但结果 CSV 文件在几个地方有一些额外的逗号。我该如何解决这个问题?

origin-CSV(第一行):

时间、纬度、经度、深度、mag、magType、nst、间隙、dmin、rms、net、id、更新、地点、类型 2015-03-13T07:53:53.950Z,38.838501,-122.8300018,3.01,0.18,md ,9,93,0.004285,0.02,nc,nc72410280,2015-03-13T08:08:04.639Z,“加利福尼亚州科布以西 9 公里”,地震

awk:

awk -F"," 'BEGIN { OFS = "," ;打印“时间”,“纬度”,“经度”,“深度”,“mag”,“magType”,“nst”,“间隙”,“dmin”,“rms”,“net”,“id”,“已更新","地点","类型","时间戳"} NR>$0{"日期 +%s -d"$1""| getline dte;$17=dte;打印}' origin.csv > result.csv

我很惊讶它只适用于 17 美元而不是 16 美元,尽管时间戳列是第 16 列。

第 5 行的结果:

时间、纬度、经度、深度、mag、magType、nst、间隙、dmin、rms、net、id、更新、地点、类型、时间戳 2015-03-13T06:46:45.450Z,-55.1707,-128.8193,10, 4.9,mb,,116,31.469,0.59,us,us10001m1z,2015-03-13T07:36:31.510Z,"太平洋-南极海脊",地震,,1426229205

这里有两个逗号而不是一个。

答案1

@Archemar
天啊,太愚蠢了。这解决了问题。删除了行“类型”和“位置”(幸运的是我不需要它们),现在它可以工作了......非常感谢您的查看

相关内容