在 AWK 中将 unix 时间戳转换为 hh:mm:ss:SSS(其中 SSS 为毫秒)
Convert unix timestamp to hh:mm:ss:SSS (where SSS is milliseconds) in AWK
如何在 AWK 中将 unix 时间戳转换为 hh:mm:ss:SSS(其中 SSS 是毫秒)。
例如:
echo 1456478048306 > time
cat time | awk ....... > readable_time_format
你可以使用 bash:
#!/bin/bash
ts="1456478048306"
unix_epoch=${ts:0:-3}
ms=${ts:((-3)):3}
echo "$(date -d@"${unix_epoch}" +%H:%M:%S):${ms}"
顺便说一句,当然你也可以使用awk
。然而 awk 不允许在这里简化很多事情,算法或多或少是相同的:
awk -v ts="1456478048306" '{
unix_epoch=substr(ts, 0, length(ts)-3)
ms=substr(ts, length(ts)-2, 3)
print strftime("%H:%M:%S", unix_epoch) ":" ms
}'
如何在 AWK 中将 unix 时间戳转换为 hh:mm:ss:SSS(其中 SSS 是毫秒)。
例如:
echo 1456478048306 > time
cat time | awk ....... > readable_time_format
你可以使用 bash:
#!/bin/bash
ts="1456478048306"
unix_epoch=${ts:0:-3}
ms=${ts:((-3)):3}
echo "$(date -d@"${unix_epoch}" +%H:%M:%S):${ms}"
顺便说一句,当然你也可以使用awk
。然而 awk 不允许在这里简化很多事情,算法或多或少是相同的:
awk -v ts="1456478048306" '{
unix_epoch=substr(ts, 0, length(ts)-3)
ms=substr(ts, length(ts)-2, 3)
print strftime("%H:%M:%S", unix_epoch) ":" ms
}'