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 时,它不存在。