-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 29/04/16 18:14, Jon LaBadie wrote:> On Fri, Apr 29, 2016 at 10:31:51AM -0400, m.roth at 5-cent.us wrote:
>> This is odd, and annoying. CentOS 6, current. Here's my awk
>> script:
>>
>> { room = substr($0, 48, 10); arr[$2,room,$1] = $0; } END { for (
>> i in arr ) { for ( j in arr[i] ) { for ( k in arr[i][j] ) { print
>> arr[i][j][k]; } } } }
>>
>
> Note the last sentence in this paragraph from the gawk manpage:
>
> The in construct may also be used in a for loop to iterate over all
> the elements of an array. However, the (i, j) in array construct
> only works in tests, not in for loops.
>
> jl
>
I modelled your problem, just changing line 2 to "room = $3". The
data file was:
1 2 3
4 5 6
7 8 9
The problem is in the line ( i in arr ). i will be "1SUBSEP2SUBSEP3",
which makes a nonsense of the rest of the code.
Using
END {
for ( a in arr ) {
split( a, a2, SUBSEP )
print a2[1], a2[2], a2[3]
}
}
I get a sensible output. You'll have to take it from here.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
iQIcBAEBAgAGBQJXI9/uAAoJEAF3yXsqtyBlgu4QALCdTlhv+oiVpYyQsksJKSUP
WOj/xIZGxzFSQM/TeXPozqr39q2fJUSGQkpxbzHZL72t32z3CS0GZPN4d1ahlk43
v68GTzDx5FgXlZXAWaSAe0+w6e8kYr0Vaf5IPmpQttSL1iwHGLLmGdK9P4s+6kRn
GroNnY8ULj7yy4ruXF9Axas4MV//Cj9NkIenPHnR+inMk0LPQFM7wQqTbPPCGn2x
WqAjaIAumHs9VwNNZq4xyi57tBK2CYajCmseeZof9EJVb8oKRoSjw00wZqrTHBM4
K5ICDNcCVeH9uNWNGfV/z8ezw9lUL4jIzgf6WObXx4ALRIPAHMLthT/OUNvTCLNM
JImeIpKmK+9cy7T3EmDy72IDhUx351Bj3bI3nGyLgaRpEmWVo8YA4VMwWRojGP70
Hq9RhC8bv8CW87DmZcZesvTmD/pP4XiuTURWuock3fpauupZUqbJ3V88SittU2pw
7jWvnYbqHsPk2Oc9J+uRwJec3J60jGE82s13OXsfiw35XA/pyA+YlBPWQbNLHGS1
2BDxDd/KsOo7vjwFYk3tRgHqDfCFJyo5wT6jwMoejguvbLxgTQc/la8izAFMAzLy
aZ3q12mXiejvTKBI22RS8VMl+N/MUzUth9roROArG84/nynDj3IEVFYYFKQwZgxX
cnfr0Sjcykioytl12jFR
=O4BS
-----END PGP SIGNATURE-----