各行にタイムスタンプを出力する大きな Linux ファイルがあり、午前 0 時からマイクロ秒単位でマークされています。awk を使用して YY-mm-d HH:MM:SS.ms 形式に変更する巧妙な短い awk スクリプトを考え出そうとしています (ここで他の投稿を確認しましたが、ほとんどは変換を扱っています)。今日の真夜中以降ではなく、エポックから)。strftime でいくつか試してみましたが、正しい日付と時刻を取得しているようには見えません。ありがとう。
1113 次
1 に答える
5
「真夜中からのマイクロ秒」とは、マイクロ秒の整数を意味すると思います
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
于 2013-01-23T22:28:19.260 に答える