awk内置变量之SUBSEP

来源:互联网 发布:mac的启动磁盘是什么 编辑:程序博客网 时间:2024/04/24 13:32
本篇文章主要简述以下内置变量:

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》
原创粉丝点击