Почему я получаю разные выходные данные, когда я изменил порядок петель в gawk - PullRequest
0 голосов
/ 24 октября 2019

Почему я получаю другой вывод, когда меняю порядок петель в gawk Это оператор завершения из скрипта:

...
...
...
END{
for (i in req) {
    for (j in req[i]) {
        for (k in req[i][j]) {
            NewReq[i][j] = NewReq[i][j] ? NewReq[i][j]"&"k : k
        }
    }
}
for (l in NewReq) {
    for (m in NewReq[l]) {
        print l,m,Cand[l][m],FCount[l][m],NewReq[l][m],reqCl[l][m]
    }
}
for (q in Cand) {
    for (r in Cand[q]) {
        print q,r,Cand[q][r]
    }
}
}' file1 file2 file3

В вышеприведенном скрипте это похоже на то, как awk добавляет новые элементы в массивCand, элементы, которых не было до оператора END.

Я получаю другой результат при перестановке цикла for:

...
...
...
END{
for (i in req) {
    for (j in req[i]) {
        for (k in req[i][j]) {
            NewReq[i][j] = NewReq[i][j] ? NewReq[i][j]"&"k : k
        }
    }
}

for (q in Cand) {
    for (r in Cand[q]) {
        print q,r,Cand[q][r]
    }
}

for (l in NewReq) {
    for (m in NewReq[l]) {
        print l,m,Cand[l][m],FCount[l][m],NewReq[l][m],reqCl[l][m]
    }
}

}' file1 file2 file3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...