➤ 数组初始化
假设数组名为ARR,则初始化的一种方法是:
ARR=(2 4 6 8)
其中,括号里的各项使用空格来分隔。
初始化数组的另一种方法是,用其他命令输出的结果来填充到数组中,例如把 ls 命令输出的文件列表填充到数组中:
ARR=(`ls /opt/`)
for FILE in ${ARR[@]};
do
echo $FILE;
done
➤ 遍历数组方法为:
for NUM in ${ARR[*]}
do
echo $NUM
done
文章来源:http://www.codelast.com/
其中,每一次循环过程中,数组里的当前元素均被保存到NUM变量中,使用即可。
如果要定义一个空的数组,直接unset即可:
unset ARR
➤ 向数组中添加成员
ARR[1]="item_1"
ARR[2]="item_2"
上面的方法使用了指定数组索引的方式来向数组添加多个成员,但如果不想显式指定数组索引,则可以用下面的方法来添加:
ARR+=("item_1")
ARR+=("item_2")
➤ 取出数组中的一个成员
[root@localhost ~]# echo ${ARR[2]}
item_2
➤ 判断一个指定的字符串是否在该数组中:
if echo "${ARR[@]}" | grep -w "item_1" &>/dev/null; then
echo "Found"
fi
其中,ARR是你的数组名,item_1是你要查找的字符串。
➤ 统计一个文件中某一列出现的频次
这算是数组的一个应用。
假设有文件 1.txt:
[codelast@ ~]$ cat 1.txtaabcadeefaa
现在要统计出 a,b,c,...等分别出现了多少次,可以这样做:
cat 1.txt | awk '{print $1"\t"1}' | awk '{arr[$1]++}END{for (a in arr) print a, arr[a]}'
解释:
● awk '{print $1"\t"1}' 是给原来只有一列的文件加上一列固定的数字 1,表示每一行的字母出现了1次。
● arr[$1]++ 是累加以第1列为key的数组的value,例如 arr["a"]++ 会使得 arr 这个数组中,key为 a 的那个元素的value加1。
● END{} 块在处理完文件之后才会被执行。
● for (a in arr) print a, arr[a] 遍历数组 arr 中的每一个元素,打印出其 key,以及 key 对应的value。
执行结果:
a 5b 1c 1d 1e 2f 1
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):