我在命令的输出中添加了具有“纳秒”精度的 Unix 纪元,如下所示:
$ command | while read line; do d=`date +%s%N`; echo $d $line; done > file
Run Code Online (Sandbox Code Playgroud)
我环顾四周,想知道如何将“纳秒”变成“毫秒”。例如,我遵循了此处给出的解决方案。所以,我尝试了两种建议的方法:
$ command | while read line; do d=`echo $(($(date +%s%N)/1000000))`; echo $d $line; done > file
$ command | while read line; do d=`date +%s%N | cut -b1-13`; echo $d $line; done > file
Run Code Online (Sandbox Code Playgroud)
但是,在这两种情况下,当我将文件插入 InfluxDB 并查询我的数据库时,我得到以下信息:
time
1970-01-01T00:24:05.419982325Z
1970-01-01T00:24:05.419982344Z
1970-01-01T00:24:05.419982371Z
1970-01-01T00:24:05.419982378Z
1970-01-01T00:24:05.419982388Z
1970-01-01T00:24:05.419982401Z
Run Code Online (Sandbox Code Playgroud)
更新
当我以纳秒精度使用 epoch 时date +%s%N,我得到了这个:
time
2015-10-21T08:59:59.978902683Z
2015-10-21T08:59:59.982615836Z
2015-10-21T08:59:59.983958069Z
2015-10-21T08:59:59.98805317Z
2015-10-21T08:59:59.99717678Z
2015-10-21T09:00:00.028624495Z
Run Code Online (Sandbox Code Playgroud)
我期待这样的输出: …