2013-06-20 3 views
0

입력 파일은 특정 품목의 가격 목록이며 awk을 사용하여 쌀 항목의 합계와 평균을 계산하고 싶습니까? 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

예, 이렇게 해봤습니다. BEGIN {FS = "|" } $ 4 ~/Rice/{n = n + 1; items = items + $ 3; } END {if (n> 0) { # print n, "items", "총 지불 항목 :", 항목, "items average :", items/n # 한 줄로 인쇄합니다. \t print n \t 인쇄 항목 "항목 평균 :": \t 인쇄가 "항목", "전체 항목 지불은"항목/N { \t 인쇄} \t} "항목을 찾을 수 없습니다"다른 \t \t} \t – k3090

+0

BEGIN {FS = "|" } $ 4 ~/Rice/{n = n + 1; items = items + $ 3; } END {if (n> 0) { # print n, "items", "총 지불 항목 :", 항목, "items average :", items/n # 한 줄로 인쇄합니다. \t print n \t 인쇄 항목 "항목 평균 :": \t 인쇄가 "항목", "전체 항목 지불은"항목/N { \t 인쇄} \t} "항목을 찾을 수 없습니다"다른 \t \t} \t 8 항목, 총 항목 지불은 : 667, 항목 평균 : 83.375 – k3090

답변

1

합계 및 평균 :

$ 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

동일한 입력 file.but 명령 줄을 통해 항목 i 여부를 확인하려면 내 질문 당신이 쌀 품목을 가져 가면 메시지 품목이있는 것으로 보일 것이라고 가정합니다. 다른 품목을 확인하면 메시지 품목을 찾을 수 없습니다. – k3090