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
分类:
Linux 服务统计
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?