Hello to all,
I have and input file like this:
Objects (id: bounding-box centroid area mean-color):
0: 800x800+0+0 406.6,390.9 378792 srgb(0,0,0)
11: 240x151+140+624 259.5,699.0 36240 srgb(255,255,255)
6: 240x151+462+176 581.5,251.0 36240 srgb(255,255,255)
7: 240x151+87+257 206.5,332.0 36240 srgb(255,255,255)
8: 240x151+366+355 485.5,430.0 36240 srgb(255,255,255)
9: 240x151+77+448 196.5,523.0 36240 srgb(255,255,255)
10: 240x151+468+542 587.5,617.0 36240 srgb(255,255,255)
2: 178x59+223+65 311.5,94.0 10502 srgb(255,255,255)
3: 178x59+417+65 505.5,94.0 10502 srgb(255,255,255)
4: 178x59+611+65 699.5,94.0 10502 srgb(255,255,255)
1: 178x59+29+65 117.5,94.0 10502 srgb(255,255,255)
5: 110x16+255+63 309.5,182.5 1760 srgb(255,255,255)
I'm interested in second field, for example the second element of second field is "240x151+140+624". If we use as field separator "+" for this second field, then would be 3 subfields within original 2nd field.
I want to have and awk array (in this case array "a") with this 2nd field sorted first by 3rd subfield and then by second subfield (where new FS="+").
I'm doing this and it works with the code below but I need first an awk program, then pipe to sort command then pipe again for the 2nd awk program.
awk 'NR>2{print $2}' file | sort -t "+" -k3n -k2n |
awk '{a[NR]=$0} END{for (i=1;i<=length(a);i++) print a }'
110x16+255+63
178x59+29+65
178x59+223+65
178x59+417+65
178x59+611+65
240x151+462+176
240x151+87+257
240x151+366+355
240x151+77+448
240x151+468+542
240x151+140+624
How to get the sorted array "a" in a single awk program (without pipe twice) to be able to make further processing in the END{} block?
Thanks in advance