我有一个大的制表符分隔文件,没有标题,如下所示:
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
覆盖原来的内容。