2013-06-25 145 views
0
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-RoastedGram|1|100.00|Rice 

它是我的輸入文件。假設我從輸入文件中檢查米飯項目。它也會顯示米飯項目和米飯價格。如果我從文件中寫入不可用的項目,如「糖」項目。它會顯示「找不到物品」。通過命令提示符顯示來自輸入文件的特定項目名稱和項目價格?

+0

有什麼問題嗎?除非你在問題的主體中提出問題,否則這將被封閉pronto。例如,您想要檢查哪些項目?你的輸入是什麼(搜索項目),你的期望輸出是什麼?你是否在同時尋找多個不同的名字?你有什麼嘗試?爲什麼你需要使用'awk'或衍生產品 - 爲什麼不使用'grep'或它的一個變種?標籤'redhawksdr'與你的問題有什麼關係? –

+0

編輯問題 - 請勿添加評論!您需要使用足夠清晰的英語(您的評論不太清楚)。你需要解釋'maxrate'是什麼。想想你在問什麼 - 而你所問的是不連貫的,你不會得到一致的答案。另外,你應該解釋你所嘗試過的......你嘗試了一些想法,是不是?搜索是否應該不區分大小寫?如果是這樣,我不相信'awk'是工作的正確工具。 –

+0

看起來有點有趣,目前接受的標籤爲'awk','gawk'和'nawk'的問題的答案是用Perl編寫的。 –

回答

0

你也可以做它用Perl:

perl -F"|" -ane 'BEGIN{$f=0}if(/Rice/){print;$f=1}END{print "not found\n" unless($f)}' your_file 
0
awk -v item=Rice '$0 ~ item { i++; print } 
        END  { if (i == 0) print item " not found" }' data 

如果你想要選擇的字段,你必須確定每個字段包含什麼。 1大概是價格? (確定:不,這不太可能是價格,但是你不應該指望我們在數據中明確列的含義; - 你應該告訴我們意義。)目前還不清楚該項目是否在現場1或場4或兩者。

這不區分大小寫 - 如果您希望區分大小寫,請閱讀您的awk版本的手冊;它可能或不可能。

0
awk -v item=Rice -F "|" "$0 ~ item {i++; total = total + $3}; END { 
if (i>0) print \"item name\",item,\"NO OF ITEMS\",i,\"total amount \",total; else print \"item not found\"}" datafile 

輸出答案:

item name Rice NO OF ITEMS 8 total amount 667 

在我的計劃尋找大米。之後搜索模式匹配表格輸入文件。接下來,我用來計數米飯的數量,總計用於所有米飯的總量。初始項目是可變的,大米是分配給變量項目的值。最後顯示項目,項目數量,項目總量。

相關問題