Você só precisa acompanhar a contagem da mesma forma que acompanha a soma:
$ awk -F'~' 'BEGIN { SUBSEP = OFS = FS } { s[$1,$2] += $3; ++c[$1,$2] } END { for (i in s) { print i, s[i], c[i] } }' file
AAA~111~6~3
BBB~111~2~1
AAA~222~2~1
Eu tenho um arquivo abaixo, onde eu quero resumir o terceiro campo e contar, com base em um primeiro e segundo campos do grupo.
Arquivo
AAA~111~2
BBB~111~2
AAA~111~1
AAA~111~3
AAA~222~2
Saída esperada
AAA~111~6~3
BBB~111~2~1
AAA~222~2~1
Até agora, eu tenho esse código que resume apenas a terceira coluna
awk 'BEGIN { FS=OFS=SUBSEP="~"}{arr[$1,$2]+=$3 }END {for (i in arr) print i,arr[i]}' File
Você só precisa acompanhar a contagem da mesma forma que acompanha a soma:
$ awk -F'~' 'BEGIN { SUBSEP = OFS = FS } { s[$1,$2] += $3; ++c[$1,$2] } END { for (i in s) { print i, s[i], c[i] } }' file
AAA~111~6~3
BBB~111~2~1
AAA~222~2~1
Tags awk