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

它是我的输入文件。假设我从输入文件中检查大米项目。它还将显示大米项目和大米项目价格。如果我从文件中写入非可用项目,如“糖”项目。它将显示“找不到项目”。

4

3 回答 3

0
awk -v item=Rice '$0 ~ item { i++; print }
                  END       { if (i == 0) print item " not found" }' data

如果您想要选定的字段,则必须确定每个字段包含的内容。1大概是价格?(好的:不,它不太可能是价格,但您不应该期望我们猜测您数据中各列的含义;——您应该告诉我们这些含义。)不清楚该项目是否在字段中1 或字段 4 或两者。

这不是不区分大小写的——如果你想要不区分大小写,请阅读你的awk;版本的手册。它可能会也可能不会。

于 2013-06-25T06:27:57.813 回答
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

在我的程序中寻找大米。之后搜索模式匹配表单输入文件。接下来我用于计算大米的数量,total 用于计算所有大米的总量。初始项是变量,大米是分配给变量项的值。最后它显示项目,项目计数,项目总金额。

于 2013-06-26T06:38:53.040 回答
0

你也可以在 perl 中做到这一点:

perl -F"|" -ane 'BEGIN{$f=0}if(/Rice/){print;$f=1}END{print "not found\n" unless($f)}' your_file
于 2013-06-26T06:49:40.383 回答