ct38 发表于 2018-8-17 08:51:25

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]
查看完整版本: shell数组和awk数组