2013-06-25 96 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 

在我的计划寻找大米。之后搜索模式匹配表格输入文件。接下来,我用来计数米饭的数量,总计用于所有米饭的总量。初始项目是可变的,大米是分配给变量项目的值。最后显示项目,项目数量,项目总量。

相关问题