awk内置变量之SUBSEP

35 篇文章 0 订阅
本篇文章主要简述以下内置变量:

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》
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值