• 本页内容

80. 删除数组元素


如果要从数组的特定索引中删除元素,请使用 awk delete 语句。 一旦从 awk 数组中删除元素,就无法再获取其值。

语法:

delete arrayname[index]; 

下面的循环命令删除数组中的所有元素。

for (var in array)
    delete array[var] 

在 GAWK 中,您可以指定以下单个命令来删除数组中的所有元素。

delete array

另外,如下例所示,item[103]="" 不会删除数组元素。它只是在其中存储空值。

$ cat array-delete.awk
BEGIN {
  item[101]="HD Camcorder";
  item[102]="Refrigerator";
  item[103]="MP3 Player";
  item[104]="Tennis Racket";
  item[105]="Laser Printer";
  item[1001]="Tennis Ball";
  item[55]="Laptop";
  item["na"]="Not Available";

  delete item[102];
  item[103]=""; 
  delete item[104];
  delete item[1001];
  delete item["na"];
  for (x in item)
    print "Index",x,"contains",item[x];
}
$ awk -f array-delete.awk
Index 55 contains Laptop
Index 101 contains HD Camcorder
Index 103 contains
Index 105 contains Laser Printer