您的位置:首页 > 其它

awk内置变量之SUBSEP

2017-11-04 12:30 1156 查看
本篇文章主要简述以下内置变量:

SUBSEP
used to build multiple array subscripts, initially = "\034".

介绍SUBSEP之前,需要先知道awk中的“二维数组”,awk中没有二维数组,所以只能使用一维数组来模拟,下面的例子模拟了一个二维数组,并打印每个数组的下标和值。其实是创建了一维数组,下标分别为1SUBSEP1, 1SUBSEP2,1SUBSEP3,2SUBSEP1,2SUBSEP2,2SUBSEP3。只不过由于SUBSEP是'\034',不可打印,所以输出的结果看起来是11,12,13,21,22,23:

qingsong@db2a:~$ awk '

> BEGIN {

> for (i = 1; i <= 2; i++)

>   for (j = 1; j <= 3; j++)

>    array[i,j] = i * j * 10

>

> for (x in array)

>  print x, array[x]

> }'

11 10

12 20

13 30

21 20

22 40

23 60

qingsong@db2a:~$

设置了SUBSEP之后,就可以改变下标的值。下面是一个例子,将SUBSEP设置为":"后的效果,可以看到,下标变为了 1:1, 1:2, 1:3, 2:1, 2:2, 2:3

qingsong@db2a:~$ awk '

> BEGIN {

> SUBSEP = ":"

> for (i = 1; i <= 2; i++)

>  for (j = 1; j <= 3; j++)

>   array[i,j] = i * j * 10

>

> for (x in array)

>  print x, array[x]

> }'

1:1 10

1:2 20

1:3 30

2:1 20

2:2 40

2:3 60

qingsong@db2a:~$

至此,通过4篇文章,已经介绍完了所有AWK内置变量。

参考资料:

《The AWK Programming Language》

《Sed and Awk 101 Hacks》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  AWK SUBSEP