2013-06-20 199 views
0

我的输入文件是项目的价目表,在那个特定项目中,我想用awk来计算米饭项目的总和和平均值?计算总和和平均值

Chenna Black |1|76.00|Chenna 
Chenna White big|1|102.00|Chenna 
Chenna White small|1|82.00|Chenna 
Dhal-Gram|1|78.00|Dhal 
Dhal-Moong|1|76.00|Dhal 
Dhal-Orid|1|72.00|Dhal 
Dhal-Toor|1|68.00|Dhal 
Dhal-Green gram|1|88.00|Dhal 
Rajma-Black|1|72.00|Rajma 
Rajma-Pink|1|80.00|Rajma 
Rice-Basmanthi|1|80.00|Rice 
Rice-Boiled|1|42.00|Rice 
Rice-Idly|1|33.00|Rice 
Rice-IGBasamanthi|1|99.00|Rice 
Rice-Karanatka Ponni|1|38.00|Rice 
Rice-Nirapara Silky|1|235.00|Rice 
Rice-Raw|1|40.00|Rice 
Rice-Roasted Gram|1|100.00|Rice 
+0

那你试试? – devnull

+0

yaa我试过像这样BEGIN {FS =“|” } $ 4〜/ Rice/{n = n + 1;物品=物品+ $ 3; } END {if(n> 0){ #print n,“items”,“total items pay is:”,items,“items average:”,items/n#it is in single line \t print n , “项目”, \t打印 “总项目付出的是:” 项目 \t打印 “项目平均:” 项目/ N \t \t} \t其他{ \t打印 “找不到项目” \t} } – k3090

+0

BEGIN {FS =“|” } $ 4〜/ Rice/{n = n + 1;物品=物品+ $ 3; } END {if(n> 0){ #print n,“items”,“total items pay is:”,items,“items average:”,items/n#it is in single line \t print n , “项目”, \t打印 “总项目付出的是:” 项目 \t打印 “项目平均:” 项目/ N \t \t} \t其他{ \t打印 “找不到项目” \t} } 8项目,总项目支付是:667,项目平均:83.375 – k3090

回答

1

相加平均使用awk所有大米项目:

$ awk -F'|' '$4=="Rice"{s+=$3;c++}END{printf "sum: %.2f avg: %.2f\n",s,s/c}' file 
sum: 667.00 avg: 83.38 
+0

相同的输入文件。但我的问题,如果你想通过命令行检查是否项目我如果你拿大米物品,它会显示消息项目是存在的。如果你检查任何其他项目,它会显示消息项目没有找到。 – k3090