一个awk if 嵌套 if 的脚本

本文介绍了一个使用Shell脚本结合awk命令来统计公司内部男女员工的婚恋状况的例子。通过构造模拟数据,该脚本能够计算并输出男职工未婚比例及女员工未婚比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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     '

 

转载于:https://www.cnblogs.com/www1707/p/5447990.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值