1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/bin/sh #声明indexed 数组 declare -a arr=([0]="javacoder" [1]="xyz" [2]="cn"); #元素引用 echo "${arr[0]}.${arr[2]}" #所有元素 echo "all elements:${arr[@]}, ${arr[*]}" #某个元素的长度 echo "#arr[2]${#arr[0]}" #数组有几个元素 echo "#arr[*]${#arr[*]}" #迭代数组 for x in "${arr[@]}" do echo "--"${x} done #释放数组 unset arr; #------------------------ #声明关联数组 declare -A map=(["username"]="javacoder" ["suffix"]="cn") #关联数组元素引用 echo "${map['username']}.${map['suffix']}" #获取元素的key echo "!map[*]${!map[@]}" |
使用关联数组统计apache日志中每个IP出现的次数(实现分组计数,或者分组求和)
#/bin/bash
declare -A arr;
for ip in $(cut -f 1 -d ' ' apache_qxu1606530096_20200620.log)
do
let arr["$ip"]=arr["$ip"]+1;
done
for x in ${!arr[@]}
do
echo "$x|${arr["$x"]}";
done
Posted in: Linux
Comments are closed.