Eu tenho a saída desejada
Month Sales
----- -----
January 200
February 300
March 200
April 200
May 300
June 400
July 400
August 300
September 400
October 300
November 400
December 200
Total 3600
Average 300
usando o seguinte script (salvo como test.awk ):
BEGIN {
print "Month Sales"
print "----- -----"
}
{ printf "%-9s %s\n", $1, $2 }
{ sum += $2 }
END {
printf "\nTotal %s\n", sum
printf "\nAverage %s\n", sum / NR
}
e chamando-o como sort -k1,1M input.txt | awk -f test.awk .
Explicação: printf "%-9s", $1 adiciona preenchimento (com espaços) até 9 caracteres à string ( $1 ). sort -k1,1M classifica a entrada por mês. Não inteiramente awk, mas muito mais fácil.