awk命令使用
环境:centos7
1、awk直接筛选列
1 2 3 4 5 6 7 8 | [sanhlt@k8s-master ~]$ free -g total used free shared buff /cache available Mem: 3 1 1 0 0 1 Swap: 0 0 0 [sanhlt@k8s-master ~]$ free -g| awk '{print $2}' used 3 0 |
2、awk筛选字段并输出列值(查询文本 /proc/meminfo中MemTotal的第二列)
1 2 3 4 | [sanhlt@k8s-master ~]$ cat /proc/meminfo | grep MemTotal MemTotal: 3882032 kB [sanhlt@k8s-master ~]$ awk '/MemTotal/{print $2}' /proc/meminfo 3882032 |
3、可以对筛选的值做赋值运算(将结果赋值给total)注意:END必须大小
1 2 | [sanhlt@k8s-master ~]$ awk '/MemTotal/{total=$2}END{print total}' /proc/meminfo 3882032 |
4、可以进行精确匹配进行筛选(awk取以Cache开头的字段 ,使用符号^开头
1 2 3 4 5 | [sanhlt@k8s-master ~]$ cat /proc/meminfo | grep Cached Cached: 415684 kB SwapCached: 0 kB [sanhlt@k8s-master ~]$ cat /proc/meminfo | grep Cached| awk '/^Cached/{print $2}' 415848 |
5、可以将结果进行计算输出(计算服务器剩余内存,计算应用可以使用的内存)
1 2 3 4 | [sanhlt@k8s-master ~]$ awk '/MemTotal/{total=$2}/MemFree/{free=$2}END{print (total-free)/1024}' /proc/meminfo 2075.58 [sanhlt@k8s-master ~]$ awk '/MemTotal/{total=$2}/MemFree/{free=$2}/^Cached/{cache=$2}/Buffers/{buffer=$2}END{print (total-free-cache-buffer)/1024}' /proc/meminfo 1595.87 |
做一个决定,并不难,难的是付诸行动,并且坚持到底。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)