awk 使用方法
💡 案例1、取出Nginx日志文件中访问 ip 出现的次数,并把访问次数最多的5个ip统计并打印
awk '{print $1}' test.net_access.log.bak | sort | uniq -c | sort -rn | head -n5
💡 案例2、文件 a.log 格式如下,取出文件中 ".baidu.com" 前面的主机名部分,并回写到该文件中
# a.log 文件格式
[root@centos8 ~]#cat a.log
1 qq.baidu.com
2 tencent.baidu.com
3 www.taobo.com
4 sina.com.cn
# 命令如下
# [ .] 解释:以空格或者 . 做为分隔符
[root@centos8 ~]# awk -F"[ .]" '{print $2}' a.log >> a.log
# 查看结果
[root@centos8 ~]#cat a.log
1 qq.baidu.com
2 tencent.baidu.com
3 www.taobo.com
4 sina.com.cn
qq
tencent
www
sina
💡 案例3、查找下方磁盘利用率最高的一个分区
磁盘分区列表:

# 命令:
# [ %]+ 解释:以空格或者 % 做为分隔符,+ 号代表一个以上
# NF 解释:统计列数,NF-1 代表最后一列减1,即为倒数第2列
[root@centos8 ~]# df | awk -F"[ %]+" '{print $(NF-1)}' | sort -rn | head -n1
💡 案例4、获取本机 ipv4 地址
# 命令:
# NR:记录的编号,NR==2 解释:打印记录编号为2的行数
[root@centos8 ~]# ifconfig eth0 | awk 'NR==2{print $2}'
💡 案例5、打印1~100的计算总和
[root@centos8 ~]# awk 'BEGIN{sum=0;for(i=1;i<=100;i++){sum+=i};print sum}'
💡 案例6、统计服务器连接状态出现的次数
#命令:
# NR!=1 解释:不包含第一行
[root@centos8 ~]#ss -nta | awk 'NR!=1{print $1}' | sort | uniq -c
浙公网安备 33010602011771号