Linux Shell数组和关联数组

最近因为统计日志数据(和Pig分析结果比对),用到Shell数组比较多,所以总结下:


定义数组

arr=(abc.cn bbc nba.com.cn)

arr=("abc.cn" "bbc" "nba.com.cn")

arr=([0]="aa" arr[3]=2)


关联数组(???????)

arr=([one]="aa" arr[three]=2)


截取指定数组元素指定的长度

localhost:~ ylchou$ echo ${arr3[*]}

ab.com toread.com.cn www.ef.org ab

localhost:~ ylchou$ echo ${arr3[1]:2:3}

rea


清除指定的单个数组元素:

[root@pps ~]# unset arr[2]


清除整个数组:

[root@pps ~]# unset arr










Linux Shell 关联数组(在低版本的shell中不可用,在mac中也有bug?不是。因为在mac中bash版本为3.2.53)

所谓关联数组就是使用字符串作为索引值对数组进行访问的数组;

2.1 关联数组的声明:


declare -A arrayName;

2.2 关联数组初始化与元素添加:

2.2.1 使用 "[index]=value" 列表的方式对关联数组添加元素:


declare -A assArray1;

assArray1=([index1]=cat [index2]=dogs [index98]=fish);

2.2.2 使用 "arrayName[index]=value" 的方式对关联数组进行添加元素:


declare -A assArray2;

assArray2[pear]=100;

assArray2[apple]=3000;

assArray2[orange]=70000;

2.3 关联数组的访问:

2.3.1 关联数组的元素访问

关联数组使用 "arrayName[index]" 的方式访问数组元素


${arrayName[index]}

2.3.2 遍历关联数组的所有元素


${arrayName[*]}

${arrayName[@]}

2.3.3 获取关联数组的元素个数


${#arrayName[*]}

${#arrayName[@]}

2.3.4 获取关联数组所有可访问元素的索引值


${!arrayName[*]}

${!arrayName[@]}


可以参考http://my.oschina.net/uyinn/blog/266821来写更多


慢慢总结

未完待续

转载于:https://my.oschina.net/ylchou/blog/486753

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值