gpt4 book ai didi

linux - 将字段转换为时间戳并插入到 CSV 中

转载 作者:太空狗 更新时间:2023-10-29 12:01:34 26 4
gpt4 key购买 nike

我有一些 CSV 文件,其中的第一个字段(列)是以秒为单位的 UNIX 时间。我需要第二个字段将第一个字段转换为yyyy-mm-dd HH:mm:ss,但由于粗心,我忘记在CSV生成器中添加代码,所以它是空(空白)。所以我的 CSV 看起来像这样:

seconds,timestamp,m_count,f_count
1446076800,,105,37
1446080400,,77,49
1446084000,,69,30
...
1446152400,,88,54
1446156000,,98,37
1446159600,,87,39

我还有一个包含撇号的数据集,如下所示:

1445907600,,twitter,JP,Japan,1
1445907600,,twitter,ZA,South Africa,1
1445907600,,twitter,CL,Chile,1
1445907600,,twitter,CN,People's Republic of China,1
1445907600,,twitter,GR,Greece,1
1445907600,,twitter,MX,Mexico,2
1445907600,,twitter,FR,France,6

现在我不喜欢再次生成 CSV,因为它涉及很长时间(由于 API 调用、速率限制和类似的东西)。我在 Linux shell 中已经有一个日期转换公式,如下所示:

$  date -u -d @1446246000 +"%Y-%m-%d %H:%M:%S"

但我不知道如何遍历每一行、插入转换并更新每个文件。我想使用 sed 或 awk。 (如果您能提供这两种方法或其他替代方案的解决方案,供我自己和社区学习,那就太好了。谢谢)

最佳答案

有了 GNU sed,您可以使用以下命令:

sed -r 's/([0-9]+),,/echo "\1",`date -u -d @\1 +"%Y-%m-%d %H:%M:%S"`,/e' t_date.txt

e - 特定于 GNUe 使 sed 在命令执行后打印模式缓冲区。

关于linux - 将字段转换为时间戳并插入到 CSV 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33884724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com