如何检查awk数组是否为空



我是AWK的新手,正在尝试确定我的数组是否为空,这样我就可以打印一条消息。通常我习惯于长度函数,可以这样检查,但AWK似乎没有这些。这是我的工作代码,我只想在解析完所有数据后,如果数组中什么都没有,打印出一条不同的消息。

#add to array if condition is met
if ($2 == "SOURCE" && $4 == "RESTRICTED"){
    sourceAndRestricted[$3]++;
}
#print out array
for (var in sourceAndRestricted){
    printf "tt"var"n" 
}

我试过这样的东西,但不起作用。建议?

for (var in sourceAndRestricted){
    if (var > 1){
        printf "tt"var"n" 
    }
    else {
        print "NONE"
    }
}

length()函数检查:

if ( length(sourceAndRestricted) > 0 ) {
    printf "tt"var"n"
}
else
    print "NONE"
}
$ cat tst.awk
function isEmpty(arr, idx) {for (idx in arr) return 0; return 1}
BEGIN {
   map[3] = 27
   print isEmpty(map)
   delete map[3]
   print isEmpty(map)
}
$ awk -f tst.awk
0
1

相关内容

  • 没有找到相关文章

最新更新