Linux 使用awk进行计算,在输出中获得额外的行

Linux 使用awk进行计算,在输出中获得额外的行,linux,awk,Linux,Awk,我正在尝试使用awk命令和一些计算打印一个简单的报告。 这是输入文件: 1 Syed-Yamin 3 500 2 Ilia-Nika 4 400 3 Mike-Ro 5 300 4 Witold-Ryb 2 200 5 Farhan-F 1 500 在报告中,我想打印第1列、第2列以及每行第3列和第4列的乘法计算结果。另外,我想在底部打印每行所有乘法的总和。我得到了一些额外的输出行,并希望清理它们。所以最终结果应该是这样的

我正在尝试使用awk命令和一些计算打印一个简单的报告。 这是输入文件:

1   Syed-Yamin   3   500
2   Ilia-Nika    4   400
3   Mike-Ro      5   300
4   Witold-Ryb   2   200
5   Farhan-F     1   500
在报告中,我想打印第1列、第2列以及每行第3列和第4列的乘法计算结果。另外,我想在底部打印每行所有乘法的总和。我得到了一些额外的输出行,并希望清理它们。所以最终结果应该是这样的:

1   Syed-Yamin   1500
2   Ilia-Nika    1600
3   Mike-Ro      1500
4   Witold-Ryb   400
5   Farhan-F     500
Total amount = $5500

我给你准备好了

$ awk -v OFS='\t' '{$3 *= $4; NF--; total += $3}1
               END {print "","Total Amount =", "$"total}' file | 
 column -ts$'\t'

1  Syed-Yamin      1500
2  Ilia-Nika       1600
3  Mike-Ro         1500
4  Witold-Ryb      400
5  Farhan-F        500
   Total Amount =  $5500
也许这样格式更好

$ awk '{printf "%d\t%s\t%5d\n",$1,$2,$3*=$4; total+=$3}
   END {print "\tTotal Amount =\t$"total}' file | 
   column -ts$'\t'

1  Syed-Yamin       1500
2  Ilia-Nika        1600
3  Mike-Ro          1500
4  Witold-Ryb        400
5  Farhan-F          500
   Total Amount =  $5500

你的代码在哪里?我拍了一张快照并发布了,但后来编辑了主题以添加代码。非常感谢!出于某种原因,我更喜欢你的第一个解决方案。
$ awk '{printf "%d\t%s\t%5d\n",$1,$2,$3*=$4; total+=$3}
   END {print "\tTotal Amount =\t$"total}' file | 
   column -ts$'\t'

1  Syed-Yamin       1500
2  Ilia-Nika        1600
3  Mike-Ro          1500
4  Witold-Ryb        400
5  Farhan-F          500
   Total Amount =  $5500