• 本页内容

82. SUBSEP - 下标分隔符


您可以使用 SUBSEP 变量将默认下标分隔符更改为您喜欢的任何内容。在以下示例中, SUBSEP 设置为:

$ cat array-multi4.awk
BEGIN {
  SUBSEP=":";
  item["1,1"]=10;
  item["1,2"]=20;
  item[2,1]=30;
  item[2,2]=40;
  for (x in item)
    print "Index",x,"contains",item[x];
}

$ awk -f array-multi4.awk
Index 1,1 contains 10
Index 1,2 contains 20
Index 2:1 contains 30
Index 2:2 contains 40 

在上面的示例中,索引 "1,1""1,2" 没有使用 SUBSEP ,因为它们用引号引起来。

因此,对于多维 awk 数组,最佳实践是不要将任何索引括在引号内,如下所示。

$ cat array-multi5.awk
BEGIN {
  SUBSEP=":";
  item[1,1]=10;
  item[1,2]=20;
  item[2,1]=30;
  item[2,2]=40;
  for (x in item)
    print "Index",x,"contains",item[x];
}

$ awk -f array-multi5.awk
Index 1:1 contains 10
Index 1:2 contains 20
Index 2:1 contains 30
Index 2:2 contains 40