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

 

posted on 2022-04-12 16:52  Simple音七  阅读(88)  评论(0)    收藏  举报