awk

Referring to Array Elements

引用数组元素

你可以使用打印命令直接打印一个数组元素,如下所示,或者,你也可以分配数组项目到另外一个变量,用于awk程序额外操作。

print item[101]
x=item[105]

如果你引用的是不存在的数组元素,awk将会自动创建给定索引的数组元素,并且分配空值给它。如果你想避免这种情况,检查索引是否可用在访问数组元素之前。

你可以检查一个特定的数组索引是否存在,使用下面的if条件语法。如果索引存在数组中,返回true.

    if ( index in array-name )

下面是一个简单的数据组引用的例子:

$ cat array-refer.awk
BEGIN {
    x = item[55];
    if ( 55 in item )
        print "arry index 55 contains", item[55];
    item[101]="HD Camcorder";
    if ( 101 in item )
        print "Array index 101 contains", item[101];
    if ( 1010 in item )
        print "Array index 1010 contains", item[1010];
}

$ awk -f array-refer.awk
arry index 55 contains
Array index 101 contains HD Camcorder

在上面的例子里:

* item[55]没有分配任何值。但是它被引用x=item[55].因此awk用空值自动创建数组元素。

* item[101]被分配一个值。因此当你检查索引101时,它是被呈现的。

* item[1010]不存在。因此当你检查索引1010时,它不能被呈现。