Problema ao usar o array multi-dimensional do gawk no cygwin

0

Antecedentes: Estou tentando criar um programa que leia vários arquivos e crie um hist a partir dos dados em todos eles. Os dados têm 3 recursos, então estou construindo uma matriz multidimensional.

o código é semelhante a este:

gawk '{
    print FNR, NR" done";
    if(FNR==NR) {hist["E"][0][1]=0; hist["V"][2][12]=1;}
    else {hist["E"][1][1]=2; hist["V"][1][0]=3; print "here"}
} END {
    for(u in hist["E"]) 
        for(f in hist["E"][u])
            print "E", u, f, hist["E"][u][f];
}' file file

No entanto, o gawk (no cygwin, mas não no Linux) reclama que estou usando um escalar como um array:

gawk: cmd. line:6: fatal: attempt to use a scalar value as array

É algo que pode ser trabalhado sem mudar para uma máquina Linux?

Adicionando informações de versão para integridade:

Windows 7
cygwin/x 1.19.6
gawk: GNU Awk 4.2.1, API: 2.0 (GNU MPFR 4.0.1-p6, GNU MP 6.1.2)

Linux:
Fedora 28 ( 4.17.19-200.fc28.x86_64)
gawk: GNU Awk 4.2.1, API: 2.0 (GNU MPFR 3.1.6-p2, GNU MP 6.1.2)
    
por tpb261 08.11.2018 / 17:18

0 respostas