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.