一、前言
二、数组语法格式
三、创建数组
????????定义了一个站点(sites)数组,该数组的索引为网站英文简称,值为网站访问地址
[root@192 ~]# awk 'BEGIN {
> sites["liang"]='www.liang.com';
> awk 'BEGIN {
sites["liang"]='www.liang.com';^C
[root@192 ~]# awk 'BEGIN {
sites["liang"]="www.liang.com";
> sites["google"]="www.google.com"
> print sites["liang"] "\n" sites["google"]
> }'
www.liang.com
www.google.com
?
四、访问数组元素
????????访问数组元素语法格式:array_name[index]
#访问数组元素
[root@192 ~]# awk -F: '{username[++i]=$1} END{print username[1]}' /etc/passwd
root
[root@192 ~]# awk -F: '{username[i++]=$1} END{print username[1]}' /etc/passwd
bin
[root@192 ~]# awk -F: '{username[i++]=$1} END{print username[0]}' /etc/passwd
root
#按元数个数遍历
[root@192 ~]# awk -F: '{username[x++]=$1} END{for(i=0;i<x;i++)print i,username[i]}' /etc/passwd
0 root
1 bin
2 daemon
3 adm
4 lp
5 sync
6 shutdown
7 halt
8 mail
9 operator
10 games
#按索引遍历
[root@192 ~]# awk -F: '{username[x++]=$1} END{for(i in username) {print i,us
ername[i]}}' /etc/passwd
35 liangl
26 qian
17 postfix
4 lp
36 han
27 yoa
18 chrony
5 sync
28 huang
19 apache
[root@192 ~]# awk -F: '{username[++x]=$1} END{for(i in username) {print i,username[i]}}' /etc/passwd
35 ji
26 abc
17 sshd
4 adm
36 liangl
27 qian
18 postfix
5 lp
37 han
28 yoa
19 chrony
?
?
?
五、删除数组元素
????????删除数组元素语法格式 使用 delete 语句来删除数组元素,语法格式如下:delete array_name[index]?
????????删除数组元素 删除数组中的 google 元素(删除命令没有输出):
[root@192 ~]# awk 'BEGIN {
> sites["liang"]="www.liang.com";
> sites["google"]="www.google.com"
> delets sites["google"];
> print fruits["google"]
> }'
?
六、多维数组?
????????AWK 本身不支持多维数组,不过我们可以很容易地使用一维数组模拟实现多维数组。
????????模拟二维数组
[root@192 ~]# awk 'BEGIN {
> array["0,0"]=100;
> array["0,1"]=200;
> array["0,2"]=300;
> array["1,0"]=400;
> array["1,1"]=500;
> array["1,2"]=600;
> print "array[0,0]=" array["0,0"];
> print "array[0,1]=" array["0,1"];
> print "array[0,2]=" array["0,2"];
> print "array[1,0]=" array["1,0"];
> print "array[1,1]=" array["1,1"];
> print "array[1,2]=" array["1,2"];
> }'
array[0,0]=100
array[0,1]=200
array[0,2]=300
array[1,0]=400
array[1,1]=500
array[1,2]=600
#实例中,array0 存储 100,array0 存储 200 ,依次类推。要在 array0 处存储 100, 使用: array["0,0"] = 100。使用 0,0 作为索引,这并不是两个索引值,而是一个字符串索引 0,0。
????????在数组上可以执行很多操作,比如,使用 asort 完成数组元素的排序,或者使用 asorti 实现数组 索引的排序等等。?
?
?
?
?