POSIX definido comprimento em awk
é uma função de string, argumento considerado como uma linha. Usar length
com uma matriz como argumento é um comportamento não especificado.
Em algumas implementações de awk
como gawk (versão > = 3.1.6 ) , versão do OS X do AWK , você pode usar length
com uma matriz como argumento, ele retornará o número de elementos na matriz.
A matriz em awk
é uma matriz associativa, o loop através da matriz associativa não garante nada sobre a ordem. Nesse caso, você pode aproveitar a função split , que retorna o número de campos para obtenha os elementos numéricos do array.
POSIXly, você pode tentar:
$ awk -vA="$tstArr2" '
BEGIN{n = split(A,B," ");}
{
if(NR > 1) {
for(i = 1;i <= n;i++) {
printf "%s ",$B[i];
}
}
print " ";
}
' file
SA AUS BRA
INDIA NZ WI