我在文件中有一些数据:
function addOrder(name, price){
alert(name + " 's price is " + price);
// do stuffs with server side values
}
我想总结一个col的浮点值,我提取列:
$ cat data.txt
facture-2817806.txt Total TTC 27.11 €
facture-2857125.txt Total TTC 37.92 €
facture-2895824.txt Total TTC 43.61 €
facture-2922275.txt Total TTC 46.73 €
facture-2935969.txt Total TTC 8.29 €
facture-2977623.txt Total TTC 41.79 €
facture-3005553.txt Total TTC 46.18 €
facture-3020047.txt Total TTC 20.34 €
facture-3061124.txt Total TTC 28.22 €
facture-3097529.txt Total TTC 59.65 €
facture-3258989.txt Total TTC 29.31 €
facture-3637195.txt Total TTC 11.17 €
facture-3681794.txt Total TTC 44.52 €
facture-3726992.txt Total TTC 28.20 €
facture-3752273.txt Total TTC 42.15 €
facture-3770970.txt Total TTC 24.01 €
用一个更多的管道来获得总和的好方法是什么?' |' ?
$ cat data.txt | awk '{print $4}'
27.11
37.92
43.61
46.73
8.29
41.79
46.18
20.34
28.22
59.65
29.31
11.17
44.52
28.20
42.15
24.01
$
注意:这里有一个类似的问题:Why does AWK refuse to sum up floats但在我的文件中浮点数并不是唯一的。 我在管道后面寻找一个额外的衬管。
答案 0 :(得分:5)
我想总结一个col的浮点值
惯用的方式
awk '{count+=$4}END{printf "Total : %f\n",count}' your_file
艰难的方式
awk 'BEGIN{count=0}{count+=$4}END{printf "Total : %f\n",count}' your_file
作为旁注,如果您希望指定小数点后的位数,请使用%0.2f
之类的内容。
注意:您根本不需要管道。
答案 1 :(得分:0)
可能awk
,但以不同的方式: -
awk '{ sum += $4;printf "$%.2f\n",sum}' data.txt
它以累积方式给出4美元的总和
编辑: - 要一次性获得第4列中所有值的总和: -
awk '{ sum += $4} END {printf "$%.2f\n",sum}' data.txt