一个awk if 嵌套 if 的脚本
1 [root@makeISO sjx]# cat sex.sh 2 #!/bin/bash 3 4 # 统计如下内容,并输出结果 5 # (男职工未婚数量/男员工整体数量)(女员工未婚数量/女员工整体数量) 6 7 echo '姓名 性别 婚否 8 001 男 已婚 9 002 男 未婚 10 003 男 未婚 11 004 男 未婚 12 005 女 已婚 13 006 女 未婚 14 007 女 未婚 15 008 女 未婚 16 009 女 未婚 17 010 女 未婚 18 011 女 未婚 19 012 女 未婚'\ 20 | sed '1d' \ 21 | awk ' \ 22 BEGIN {m=0;mno=0;f=0;fno=0}\ 23 {if($2 == "男")\ 24 {m+=1;if($3 == "未婚"){mno+=1}}\ 25 else\ 26 {f+=1;if($3 == "未婚"){fno+=1}}\ 27 }\ 28 END {printf "(男职工未婚数量/男员工整体数量):(%s/%s)\n(女员工未婚数量/女员工整体数量):(%s/%s)\n",mno,m,fno,f}\ 29 ' 30 [root@makeISO sjx]# sh sex.sh 31 (男职工未婚数量/男员工整体数量):(3/4) 32 (女员工未婚数量/女员工整体数量):(7/8)
下面脚本也可以(去掉 sed ,else 换成 else if )
1 #!/bin/bash 2 3 # 统计如下内容,并输出结果 4 # (男职工未婚数量/男员工整体数量)(女员工未婚数量/女员工整体数量) 5 6 echo '姓名 性别 婚否 7 001 男 已婚 8 002 男 未婚 9 003 男 未婚 10 004 男 未婚 11 005 女 已婚 12 006 女 未婚 13 007 女 未婚 14 008 女 未婚 15 009 女 未婚 16 010 女 未婚 17 011 女 未婚 18 012 女 未婚'\ 19 | awk ' \ 20 BEGIN {m=0;mno=0;f=0;fno=0}\ 21 {if($2 == "男")\ 22 {m+=1;if($3 == "未婚"){mno+=1}}\ 23 else if($2 == "女")\ 24 {f+=1;if($3 == "未婚"){fno+=1}}\ 25 }\ 26 END {printf "(男职工未婚数量/男员工整体数量):(%s/%s)\n(女员工未婚数量/女员工整体数量):(%s/%s)\n",mno,m,fno,f}\ 27 '
分类:
shell脚本合集
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~