O Awk coloca um loop implícito em torno da maior parte do script: além dos BEGIN e END blocks (e definições de função), o script é executado para cada linha em seqüência. Então, seria muito estranho ter um loop como for (i = 1; i<= NR; i++) em um script awk: quando o awk passa pela primeira linha, este executa o corpo do loop para i=1 , então o awk passa pela segunda linha e o corpo do loop é executado por i=1 e i=2 , então o awk passa pela segunda linha e o corpo do loop é executado para i=1 e i=2 e i=3 , etc.
Supondo que os nomes dos funcionários não sejam repetidos, o pagamento total de cada funcionário é simplesmente $2 * $3 . Você pode imprimir isso se quiser:
NR == 1 { print $1, $2, $3, "total" }
NR != 1 { print $1, $2, $3, $2 * $3 }
(A condição NR == 1 identifica a linha de cabeçalho.)
O pagamento total de todos os funcionários é a soma dessa expressão para cada linha, além da linha de cabeçalho. Para calcular o pagamento total de todos os funcionários, adicione o pagamento do empregado atual ao total acumulado.
NR != 1 { total += $2 * $3 }