AWK - 两列相乘并将结果与​​尾随零相加

AWK - 两列相乘并将结果与​​尾随零相加

我有一个这样的 csv 文件:

Row 1,1,4.50,
Row 2,8,0.30,
Row 3,14,0.30,
Row 4,2,2.50,
Row 5,20,0.30,

我想将第二列与第三列相乘,并将结果添加为第四列。

我得到了这个简单的 awk 命令:

awk -F',' '{print $1 "," $2 "," $3 "," $2 * $3}' file

我得到:

Row 1,1,4.50,4.5
Row 2,8,0.30,2.4
Row 3,14,0.30,4.2
Row 4,2,2.50,5
Row 5,20,0.30,6

有没有办法像[N.NN]一样格式化最后一个库中的输出?

所以我会得到这样的输出:

Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00

答案1

您可以使用printfsprintf来格式化输出例如。

$ awk -F, '{printf "%s%.2f\n", $0, $2*$3}' file
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00

或者

$ awk -F, '{print $0 sprintf("%.2f", $2*$3)}' file
Row 1,1,4.50,4.50
Row 2,8,0.30,2.40
Row 3,14,0.30,4.20
Row 4,2,2.50,5.00
Row 5,20,0.30,6.00

相关内容