gpt4 book ai didi

regex - 如何使用 bash 将文件中具有毫秒时间戳的列转换为日期?

转载 作者:行者123 更新时间:2023-12-01 09:09:24 24 4
gpt4 key购买 nike

我正在尝试将文件第一列中以毫秒时间戳为单位的所有值转换为日期格式 %Y-%m-%d %H:%M:%S。但输出是 Di 26.Mai 15:04:00 CEST 2020000。我正在使用这个命令:

cat throughput-vs-latency-40K-16.csv | sed 's/^/echo "/; s/\([0-9]\{10\}\)/`date -d @\1`/; s/$/"/' | bash

这是文件

"Time","pre_aggregate[0]-IN","pre_aggregate[10]-IN",
1590491460000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1590491475000,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
1590491490000,0,0,0,0,0,0,0,0,
1590491505000,290.51666666666665,290.53333333333336,
1590491535000,1027.15,1027.15,1028.85,1028.8666666666666,
1590491550000,1394.1166666666666,1394.15,1394.15,1394.1333333333334,
1590491565000,1475.5333333333333,1473.3666666666666,

我想要下面的输出(请只考虑格式并忽略正确的时间转换):

"Time","pre_aggregate[0]-IN","pre_aggregate[10]-IN",
"2020-05-07 08:05:45",0,0,0,0,0,0,0,0,
"2020-05-07 08:06:45",290.51666666666665,290.53333333333336,
"2020-05-07 08:07:45",1027.15,1027.15,1028.85,1028.8666666666666,
"2020-05-07 08:05:45",1394.1166666666666,1394.15,1394.15,1394.1333333333334,
"2020-05-07 08:08:45",1475.5333333333333,1473.3666666666666,

我在 sed 命令中缺少什么来获得这种格式的日期 2020-05-07 08:09:45

最佳答案

你可以使用这个awk:

awk 'BEGIN {
FS=OFS=","
}
NR > 1 {
n = $1/1000
cmd = "date -d @" n " +\"%Y-%m-%d %T\""
$1 = "\"" ( (cmd | getline out) > 0 ? out : $1 ) "\""
close(cmd)
} 1' file

"Time","pre_aggregate[0]-IN","pre_aggregate[10]-IN",
"2020-05-26 07:11:00",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"2020-05-26 07:11:15",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
"2020-05-26 07:11:30",0,0,0,0,0,0,0,0,
"2020-05-26 07:11:45",290.51666666666665,290.53333333333336,
"2020-05-26 07:12:15",1027.15,1027.15,1028.85,1028.8666666666666,
"2020-05-26 07:12:30",1394.1166666666666,1394.15,1394.15,1394.1333333333334,
"2020-05-26 07:12:45",1475.5333333333333,1473.3666666666666,

n=$1/1000 是在调用date 命令转换为Y-m-d H:M:S< 之前将毫秒值转换为秒值 格式。

关于regex - 如何使用 bash 将文件中具有毫秒时间戳的列转换为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62025091/

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