如何在 AWK 中获取数组的大小?

How to get size of array in AWK?


我已经通过如下拆分字符串来声明数组。

names = "Dhana,Subha,Siva"
n=split(names,name_arr,",");

我想在这里打印数组的大小而不使用变量'n'?有什么方法类似于 name_arr.length 或 name_arr.size() ?

在我的 GNU awk 系统中以下工作,以防根据您的问题您不想使用变量来获取数组的长度。如果 awk.

可用,我们可以使用 length
awk 'BEGIN{names="Dhana,Subha,Siva";split(names, array,",");print length(array)}'

输出将为 3

解决方案 2: 如果您的 awk 中没有 length 选项并且您不想使用 num=split(..) 选项,那么你必须以旧的方式来做,你必须遍历数组并获取它的计数,最后打印它,然后如下所示:

awk 'BEGIN{names="Dhana,Subha,Siva";split(names, array,",");for(i in array){val++};print val}'