• 本页内容

78. 引用数组元素


您可以使用 print 命令直接打印数组元素,如下所示,也可以将数组项分配给另一个变量以在 awk 程序中进行其他操作。

print item[101]
x=item[105] 

如果引用不存在的数组元素,awk 将自动使用给定索引创建该数组元素,并为其分配 null 值。如果要避免这种情况,请在访问数组元素之前检查索引是否有效。

您可以使用以下 if 条件语法检查特定数组索引是否存在。如果数组中存在索引,则返回 true

if ( index in array-name )

下面是一个简单的数组参考示例:

$ cat array-refer.awk
BEGIN {
    x = item[55];
    if ( 55 in item )
        print "Array 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
Array index 55 contains
Array index 101 contains HD Camcorder 

在上面的例子中:

  • item[55] 之前未分配任何值。 但它是在 x = item[55] 中引用的,所以 awk 会自动创建这个具有空值的数组元素。
  • item[101] 分配一个值。 因此,当您检查索引 101 时,它是存在的。
  • item[1010] 不存在。 因此,当您检查索引 1010 时,它不存在。