次のファイルがあります。
1633092723, TRANSFERCHECK: OK
1633092771, TRANSFERCHECK: OK
1633092777, TRANSFERCHECK: OK
1633092805, TRANSFERCHECK: OK
1633092811, TRANSFERCHECK: OK
1633092818, TRANSFERCHECK: OK
1633092823, TRANSFERCHECK: OK
1633092852, TRANSFERCHECK: OK
1633092857, TRANSFERCHECK: OK
1633092863, TRANSFERCHECK: OK
1633092891, TRANSFERCHECK: OK
1633092898, TRANSFERCHECK: OK
1633092904, TRANSFERCHECK: OK
1633092911, TRANSFERCHECK: OK
1633092938, TRANSFERCHECK: OK
1633092945, TRANSFERCHECK: OK
1633092953, TRANSFERCHECK: OK
1633092984, TRANSFERCHECK: OK
最初の列は絶対タイムスタンプです。どうやって作れますか?奇妙な一行各腹筋間の平均時間。タイムスタンプを計算します。プロセスの全期間を予測するために使用する必要があります。これを行いましたが、タイムスタンプの時間に過ぎず、あるタイムスタンプから次のタイムスタンプまでの期間ではありません。
cat myfetchlog.log | awk -F, '{sum+=$1} END {print strftime("%c",sum/NR)}'
ありがとうございます。私はawkの初心者であり、改善したいと思います。
ベストアンサー1
平均差を計算する式は次のとおりです。
{(2nd-1st) + (3rd-2nd) + ... + (nth-(n-1)th}/(NR-1)
Here 2nd-1st etc are difference between each consecutive times and there are NR-1 such difference
したがって、本質的にn番目(最後の項目)と最初の(最初の項目)の間のすべての項目を削除します(2nd-1st+3rd-2nd+..+nth-(n-1)th)/(NR-1)
。したがって、式は(nth-1st)/(NR-1)
次のようになります。awk
コードは次のとおりです。
awk 'NR==1 {first = $1} END {print ($1-first)/(NR-1)}' test
サンプルの場合は返されます。
15.3529