如何在awk中声明一个数组

时间:2015-07-16 04:03:13

标签: awk

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

2 个答案:

答案 0 :(得分:1)

arr块中的初始BEGIN"声明"它是一个标量。那令人困惑的是awk。只需删除它。

答案 1 :(得分:0)

您可以使用delete语句声明一个空数组:

BEGIN { delete arr[0] }
END { 
    print "len", length(arr)
    if ("1" in arr) {
        print "astonishing"
    }
}