shell脚本(使用数组统计数据)

                    使用数组统计数据

例一:统计/etc/passwd中/bin/bash和/sbin/nologin的个数有多少

#!/bin/bash
#定义变量,拿到/etc/passwd最后一行
NF=`awk -F ":" '{ print $NF }' /etc/passwd`
#定义关联数组login
declare -A login
#遍历NF变量,即etc/passwd最后一行
for i in $NF
do
#给数组login作为索引,值++
        let login[$i]++
done

#从login数组中拿到索引
for j in ${!login[*]}
do
#输出索引及索引对应的值
echo "$j  ${login[${j}]}"
done


例二:显示access.log中访问IP及次数

#!/bin/bash
#取access.log第一行
ip=`awk '{print $1}' access.log`
#定义数组ipinfo
declare -A ipinfo
#遍历变量ip
for i in $ip
do
#变量IP取值赋给ipinfo做索引,相同的将会被++
        let ipinfo[$i]++
done
#最终拿到ipinfo中的索引,并取对应值
for j in ${!ipinfo[*]}
do
        echo "$j ${ipinfo[${j}]}"
done

#上面两个示例思路是统计什么,将什么作为数组索引++,最后遍历数组,取值

猜你喜欢

转载自blog.51cto.com/13760226/2413507
今日推荐