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 '