我是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