我有一个大的linux文件,打印出每行的时间戳,标记为午夜过后的微秒.我一直试图想出一个聪明的短awk脚本,它将使用awk将其改为YY-mm-d HH:MM:SS.ms格式(我已经在这里检查了一些其他帖子,但大多数处理转换从时代开始,而不是从今天午夜开始).我已经尝试了一些strftime的东西,但似乎没有任何东西让我得到正确的日期和时间.谢谢.
我假设"午夜以来的微秒"你的意思是整数微秒
echo 86399123456 | awk '
BEGIN { midnight = mktime(strftime("%Y %m %d 0 0 0", systime())) }
{
seconds = $1 / 1e6
fraction = $1 % 1e6
printf "%s.%06d\n", strftime("%Y-%m-%d %T", midnight + seconds), fraction
}
'
Run Code Online (Sandbox Code Playgroud)
输出
2013-01-23 23:59:59.123456
Run Code Online (Sandbox Code Playgroud)