Text-Processing
如何使用絕對時間列計算此文件的平均時間值
我有一個這樣的文件:
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
第一列是絕對時間戳。我怎樣才能製作一個awk 單線,其中每個腹肌之間的平均時間。計算時間戳。它應該用於預測過程的總持續時間。我已經這樣做了,但這會產生時間戳的同時,而不是從一個到下一個的持續時間。
cat myfetchlog.log | awk -F, '{sum+=$1} END {print strftime("%c",sum/NR)}'
非常感謝。我是 awk 初學者,想改進。
平均差的公式是
{(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 個(最後一項)和第 1 個(第一項)之間的所有項,因為它變成
(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