1
我有一個很大的linux文件,它在每行上打印出一個時間戳,標記爲午夜過後的微秒。我一直試圖想出一個聰明的短awk腳本,它將使用awk將其更改爲YY-mm-d HH:MM:SS.ms格式(我已經在此處查看了其他一些帖子,但大部分內容涉及轉換從時代開始,而不是從今天午夜開始)。我已經嘗試了strftime的一些東西,但似乎沒有讓我獲得正確的日期和時間。謝謝。使用awk將時間戳從午夜過渡到微秒
我有一個很大的linux文件,它在每行上打印出一個時間戳,標記爲午夜過後的微秒。我一直試圖想出一個聰明的短awk腳本,它將使用awk將其更改爲YY-mm-d HH:MM:SS.ms格式(我已經在此處查看了其他一些帖子,但大部分內容涉及轉換從時代開始,而不是從今天午夜開始)。我已經嘗試了strftime的一些東西,但似乎沒有讓我獲得正確的日期和時間。謝謝。使用awk將時間戳從午夜過渡到微秒
我想通過「從午夜開始微秒」你的意思是微秒的整數倍
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
}
'
輸出
2013-01-23 23:59:59.123456
是的。謝謝您的幫助。 – Eric
你可以定義「午夜」在這裏嗎?我認爲他們是午夜不同的日子。正確? 如果是這樣,那麼轉換成HH:MM:SS.ms的問題更多了。並且樣本輸入和預期結果將會有所幫助。 – momogentoo