Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Awk 是否通过命令提示显示输入文件中的特定项目名称和项目价格?_Awk_Gawk_Nawk - Fatal编程技术网

Awk 是否通过命令提示显示输入文件中的特定项目名称和项目价格?

Awk 是否通过命令提示显示输入文件中的特定项目名称和项目价格?,awk,gawk,nawk,Awk,Gawk,Nawk,这是我的输入文件。假设我从输入文件中检查大米项目。它还将显示大米项目和大米项目价格。如果我从文件中写入不可用的项目,如“糖”项目。它将显示“未找到项目” 如果需要选定字段,则必须标识每个字段包含的内容。1大概就是价格吧?(好的:不,不太可能是价格,但您不应该期望我们预测您数据中各列的含义;-您应该告诉我们含义。)不清楚该项目是否在字段1或字段4中,或者两者都在 这不是不区分大小写的-如果您想要区分大小写,请阅读您的awk版本的手册;这可能也可能不可能 awk -v item=Rice '$0 ~

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

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

这不是不区分大小写的-如果您想要区分大小写,请阅读您的
awk
版本的手册;这可能也可能不可能

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

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

在我的节目中搜索大米。然后搜索模式匹配表单输入文件。下一步我用来计算大米的数量,总数是用来计算所有大米的总数。初始项是变量,rice是分配给变量项的值。最后,它显示项目、项目计数、项目总数。

您也可以在perl中执行此操作:

item name Rice NO OF ITEMS 8 total amount 667

问题是什么?除非您在问题主体中提出问题,否则此选项将立即关闭。例如,您要检查哪些项目?您的输入(搜索项)是什么,预期的输出是什么?您正在同时查找多个不同的名称吗?你试过什么?为什么您需要使用
awk
或衍生工具-为什么不使用
grep
或其变体?标签
redhawksdr
与您的问题有何关联?编辑问题-不要添加评论!你需要使用足够清晰的英语(你的评论不是很清楚)。您需要解释什么是
maxrate
。想想你在问什么——虽然你问的是不连贯的,但你不会得到连贯的答案。另外,你应该解释一下你试过什么……你试过一些想法,不是吗?搜索是否应该不区分大小写?如果是这样的话,我不相信
awk
是适合这项工作的工具。对于一个被标记为
awk
gawk
nawk
的问题,目前被接受的答案是用Perl编写的,这似乎有点可笑。
item name Rice NO OF ITEMS 8 total amount 667
perl -F"|" -ane 'BEGIN{$f=0}if(/Rice/){print;$f=1}END{print "not found\n" unless($f)}' your_file