AWK文本分析工具-常用场景(持续更新中)
AWK help document:http://www.gnu.org/software/gawk/manual/gawk.html
问题
|
awk命令
|
备注
|
---|---|---|
对请求IP统计分组排序? | ||
显示列头 | cat /etc/passwd |awk -F':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}' | |
查询指定IP的所有行? | awk '/140.205.201.31/{print $1}' | 支持正则 |
统计文本行数? | awk 'END {print NR}' | |
统计某一个IP访问次数? | cat access.log |awk '/127.0.0.1/ {count++;} END {print "127.0.0.1 IP count=", count}' | |
统计某个接口请求平均耗时? | ||
统计访问次数最多的IP? | ||
统计请求量最高的IP访问最多的URL? |
awk内置变量 | |
---|---|
ARGC | 命令行参数个数 |
ARGV | 命令行参数排列 |
ENVIRON | 支持队列中系统环境变量的使用 |
FILENAME | awk浏览的文件名 |
FNR | 浏览文件的记录数 |
FS | 设置输入域分隔符,等价于命令行 -F选项 |
NF | 浏览记录的域的个数 |
NR | 已读的记录数 |
OFS | 输出域分隔符 |
ORS | 输出记录分隔符 |
RS | 控制记录分隔符 |