我有档案
Product Cost
a 10
b 20
c 30
我想要计算成本大于10的产品。 我用过:
awk '{$2>10}' myfile | wc -l
但它不起作用 - 我得到了结果0
而不是我期待的2
。怎么了?
答案 0 :(得分:3)
你的条件包裹着大括号;你不想要那个:
awk '$2 > 10' myfile | wc -l
实际上,条件生成0或1,但没有打印,因此wc -l
计数为0(因为awk
没有产生输出)。
此外,作为Barmar points out,您可以awk
进行计数而不使用wc
。
答案 1 :(得分:2)
您无需使用wc
,即可在awk
进行计数。但主要问题是条件测试需要在括号之外(或在括号内和if
语句中)。
awk '$2 > 10 { count++ } END {print count}' myfile
答案 2 :(得分:-1)
awk '{if($2 > 10} myfile | wc -1
我认为这可能是解决方案,试一试让我知道。