簡單awk 命令

       今天,需要求得兩個狀態的比率, 在經過痛苦的手動記錄和計算,之後,突然意識到可以用awk,對log文件進行操作。
log 文件: test.log  
以下是log 文件中的一部分數據,需要計算 state_2 / (state_2+state_3)

STAT state_1 0
STAT state_2 12345
STAT state_3 23456
STAT state_4 139739

STAT state_1 0
STAT state_2 124656
STAT state_3 185312
STAT state_4 139739

最後寫出的awk命令是:

awk '/state_2 | state_3/ {print $3}' /var/log/test.log | 
awk '{if(FNR%2 == 1) state2 = $1; 
if(FNR%2 ==0 && (state2+$1) !=0 ){ i++; state3 = $1; sum += state2/(state2+state3)}
}END
{print "avg = ", avg = sum/i}'
不知道還有沒有更簡單的寫法。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章