gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 09:57:54 25 4
gpt4 key购买 nike

我正在尝试使用 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   Syed-Yamin   1500
2 Ilia-Nika 1600
3 Mike-Ro 1500
4 Witold-Ryb 400
5 Farhan-F 500
Total amount = $5500
awk 'BEGIN {total=0;}
{print "$1, $2, ($3 * $4)";}
total=total+($3 * $4)
END {print "Total Amount = $", total;}' input
awk print with lots of extra lines

最佳答案

在这里,我为你修好了...

$ 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

关于linux - 使用 awk 进行计算,在输出中获得额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62724273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com