shell数组和awk数组
awk终于能入门了,所以整理了该文章,内容大多来自网上。一、bash支持一维数组(不支持多维数组),没有限定数组的大小。在shell中,用括号来表示数组,数组元素用空格符号分割开。类似于C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0
1. 定义数组
数组名array,元素a b c
# array=(a b c)
2.获取所有元素
# echo ${array
[*]}
a b c
# echo ${array[@]}
a b c
3.获取数组的长度
# echo ${#array
[*]}
3
4.通过下标0 1 2依次获取数组的每一个元素
# echo ${array}
a
# echo ${array}
b
# echo ${array}
c
5.获取部分数组
# echo ${array
[*]:0:2}
a b
6.删除第一个元素
# unset array
7.删除整个数组
# unset array
小例子:
#!/bin/bash
#删除指定目录下的文件
a=(/usr/local/tomcat/logs /home/user/tomcat/logs /usr/local/app/tomcat/logs)
for i in "${a[@]}"
do
find "$i" -maxdepth 1 -type f -name "*.txt"! -name "*.*" ! -mtime +30 -exec rm {} \;
done
二、awk数组
awk的数组,一种关联数组(Associative Arrays),支持多维数组,下标可以是数字和字符串。因无需对数组名和元素提前声明,也无需指定元素个数 ,所以awk的数组使用非常灵活。
1.建立数组
array=value 数组名array,下标index以及相应的值value 2.读取数组值
{for (item in array)print array} # 输出的顺序是随机的
{for(i=1;i
页:
[1]