awk

SUBSEP - Subscript Separator

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,2 contains 20
Index 2:1 contains 30
Index 2:2 contains 40
Index 1,1 contains 10

在上面的例子里, 索引”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 2:1 contains 30
Index 1:2 contains 20
Index 2:2 contains 40