linux awk

awk 实现类似 group by功能

文件(filename.txt)内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
499
499
499
499
499
499
499
408
499
499
499
499
400
499
499
499
...

命令:

1
2
3
4
$ awk '{arr[$1]+=1}END{for(i in arr)print i,arr[i]}' filename.txt
408 6
400 6
499 172

awk 使用 if 条件过滤

1
$ grep '2020:09' nginx-access.log* | grep -v 'DNSPod' | awk '{ if($9>=400&&$9<500) print $9 }'