将csv文件中的毫秒列转换为秒

将csv文件中的毫秒列转换为秒

我有一个大的制表符分隔文件,没有标题,如下所示:

Tue Jun 09 18:06:53 GMT 2020    1591726013187
Tue Jun 09 18:20:31 GMT 2020    1591726831779
Tue Jun 09 18:09:01 GMT 2020    1591726141456

我正在尝试将第二列从毫秒转换为秒,并且似乎遇到一些问题。这就是我正在使用的:

awk '{print strftime("%c", ( $2 + 500 ) / 1000 )}' file.tsv

考虑到文件的大小,也不确定使用 awk 是否是最有效的方法。感谢您的任何建议。

答案1

我仍然认为你的问题措辞非常糟糕,但鉴于你的评论,我认为你在追求

$ echo -e  "Tue Jun 09 18:20:31 GMT 2020\t1591726831779" | awk  -F"\t" '{printf "%s\t%u\n",  $1, ($2+500)/1000 }'
Tue Jun 09 18:20:31 GMT 2020    1591726832

答案2

如果您决定不关心舍入,但可以截断毫秒数字,则可以

sed 's/...$//' file

用于sed -i覆盖原来的内容。

相关内容