awk列出报告的总计

时间:2013-11-06 16:18:14

标签: bash awk

您好我正在尝试列出报告的总计。 试图列出总数。但我不确定使用什么代码将total salariedtotal hourly组合在一起来自awk

请告知

结果:

Salaried:
Frank    $2333
Mary     $1111

Total salaried: $3444
Hourly:
Chris     $122

Total Hourly:122
----------------------
Grand Total: $3566

.txt文件:

序列如下:[id],[name],[title],[phone],[type],[pay]

3,Frank,CFO,91111453,Salaried,2333
1,Mary,CEO,93424222,Salaried,1111
5,John,Sales user,9321312,Commission,9999
7,Chris,Admin,98888753,Hourly,122

代码:

     #salaried
        awk -F, 'BEGIN {print "Salaried"} $5=="Salaried"{salaried+=$6; printf "%s\t\t\t\t$%s\n", $2, $6} END {printf "Total salaried payroll: \t$%s", salaried}' $PAYROLL
       echo
       echo
       #hourly
       awk -F, 'BEGIN {print "Hourly"} $5=="Hourly"{hourly+=$6; printf "%s\t\t\t\t$%s\n", $2, $6} END {printf "Total Hourly payroll: \t\t$%s", hourly}' $PAYROLL
       echo
       echo "Grand total: 

1 个答案:

答案 0 :(得分:1)

像这样使用awk;

awk -F, '{t[$5]+=$6} END{for (i in t) print i, t[i]}' file
Hourly 122
Commission 9999
Salaried 3444

对于frand total:

awk -F, '{t[$5]+=$6} END{for (i in t) {sum+=t[i]; print i, t[i]} print "Grand Total: " sum}' file
Hourly 122
Commission 9999
Salaried 3444
Grand Total: 13565