2013-06-20 240 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