Linux--工作常用命令學習記錄
1、sed -n '/14\/Nov\/2018:20:30:/,/14\/Nov\/2018:20:31/p' api.weclassroom.com.access.log-20181115 | grep '/class/replay/allow' | awk -F"|" '{sum+=$14*1000};END{print sum}'
指定時間範圍,在某文件裡查詢 並統計 每行以| 作為分隔符的第14列的值的,所有行的總數。
2、/home/work/local/nginx/logs ----nginx access.log日誌
3、sed -n '/14\/Nov\/2018:20:35:/,/14\/Nov\/2018:20:40/p' api.weclassroom.com.access.log-20181115 |awk -F"|" '{print $1,$3}'|awk '{print $1" "$3}'|awk '{sum[$2]+=1}END{for(i in sum)print i"\t"sum[i]}' |sort -k 2nr|head :
/stream/video/list 1664
/file/get/clilistlessondoc 1161
/tool/clientdebugfile 590
/service/ini/class 311
/service/ini/user 275
/replay/status 197
/service/chat?i=22&l=221893&sign=1&t=1000 153
/stream/callback/onpublish 147
/tool/get/record/url 120
/tool/sts/gettoken?appuniqid=actiongateway_v10 115
awk指令碼
關於awk指令碼,我們需要注意兩個關鍵詞BEGIN和END。
- BEGIN{ 這裡面放的是執行前的語句 }
- END {這裡面放的是處理完所有的行後要執行的語句 }
- {這裡面放的是處理每一行時要執行的語句
awk預設按照字串比較的,如果要比較數值,需要先強制型別轉換,即 $1+0,轉換成整數。