Não sei se entendi a pergunta. Você quer ser capaz de obter dois resultados?
Caso não seja óbvio, a resposta do Archemar pode ser estendida para coletar várias estatísticas:
awk '($4 > 10) && ($4 < 20) { c10++; s10+=$2; }
($4 > 20) && ($4 < 30) { c20++; s20+=$2; }
END { if (c10>0) print "average for 10-20:", s10/c10
if (c20>0) print "average for 20-30:", s20/c20 }' …
- Claro que é uma boa prática de programação inicializar suas variáveis.
Mas
awk
inicializa variáveis para nulo, que age como zero quando usado em contextos matemáticos, então não é realmente necessário. - Como Archemar apontou, você pode exercer algum controle
sobre o formato de saída (ou seja, como o resultado é gravado) com
printf
. Mas os padrões deawk
(isto é, como ela implementa a instruçãoprint
) são razoáveis. - Como Archemar apontou, você pode querer para emitir uma mensagem de erro explícita quando não há pessoas em um intervalo (em vez de apenas não reportar uma média).