1. 程式人生 > >Linux--工作常用命令學習記錄

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,轉換成整數。