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

                    使用数组统计数据
数组

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

#!/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及次数ide

#!/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

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

相关文章
相关标签/搜索