Linux awk

分组统计

 awk '{ m[$14]+=1} END{ for (k in m)  print k, m[k]}' 

awk '{arrs[$1]+=1} END {for(k in arrs) {print k,arrs[k]}}' zgyd11.com.access.log | sort -nr -k 2 | head -20

tail -n 1000 14_swoole.log | awk -F '请求地址:' '{print $2}' | awk '{if(!NF ||/^#/){next}}1' | awk -F '|' '{print $1}'| awk -F '&' '{m[$1]+=1} END{for(k in m) print k,m[k]}' | sort -rn -k 2 -t ' '

去除空白行

grep -inH "请求地址:" *14_swoole.log | awk -F '请求地址:' '{print $2}' | awk '{if(!NF ||/^#/){next}}1' | awk -F '|' '{print $1}'| awk -F '&' '{m[$1]+=1} END{for(k in m) print m[k],k}' | sort -rn -k 1 -t ' '