awk split columns after matching on rows and summing the last column

input:

chr1	1	2	3
chr1	1	2	4
chr1	2	4	5
chr2	3	6	9
chr2	3	6	10

Code:

awk '{a[$1$2$3]+=$4}END{for (i in a) print i,a}' input

Output:

chr112 7
chr236 19
chr124 5

Desired output:

chr1 1 2 7
chr2 3 6 19
chr1 2 4 5

Thank you

Add FS (blank space by default)

awk '{a[$1 FS $2 FS $3]+=$4}END{for (i in a) print i,a}'
2 Likes