随笔 - 17  文章 - 0  评论 - 0  阅读 - 2342

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   Simple音七  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示