awk命令的使用(三)获取数组的最后一个元素

虽然awk提供了一些关于数组相关的操作,但是需要使用for(r in ..)的方式,

这种方式可以遍历数组中的每个元素,但是我只想获得数组中的最后一个元素时,用awk提供的函数则很不方便。

比如,我最近遇到一个问题:

有这么一个数组,其中的元素分别为,zx1,zx2,zx3,zx4,

我需要去掉最后一个元素后面的",".

这就需要获得最后一个元素,然后对其进行处理(可以使用substr函数去掉“,”)

但是,问题的关键在于,获得最后一个元素。

可以采取这种思路进行解决:(注意,awk提供的获得数组长度的函数length,在本人的机器上是不支持的)

先对数组元素的个数用一个变量j计数,最后根据这个j,获得数组元素,从而对最后一个数组元素进行特殊处理。

代码如下:

awk '{j=1;for(k in tB) { j++;}{len=j-1;}{for(k in tB) if(k<len-1) print tB[k],",";else print tB[k]} test.txt


大家有更好的方法,可以一块讨论 (*^__^*) 。

你可能感兴趣的:(awk命令的使用(三)获取数组的最后一个元素)