我用awk写了一个脚本。我想知道如何在awk中声明一个数组。
我已阅读gnu awk manual,但未发现声明。
我想测试索引ind
是否在awk数组arr
中。
echo 'awk' | awk 'BEGIN {arr} {if ('1' in arr) arr[ind] = 1}'
我之前没有将arr
声明为数组,并且在awk中运行它会给我这样的错误。
awk: cmd. line:1: (FILENAME=- FNR=1) fatal: attempt to use scalar `arr' as an array
答案 0 :(得分:1)
arr
块中的初始BEGIN
"声明"它是一个标量。那令人困惑的是awk。只需删除它。
答案 1 :(得分:0)
您可以使用delete语句声明一个空数组:
BEGIN { delete arr[0] }
END {
print "len", length(arr)
if ("1" in arr) {
print "astonishing"
}
}