多命令Grep

多命令Grep,grep,Grep,我想搜索一个字符串(目前不是模式),只打印一次匹配的字符串和匹配的行数 常识告诉我必须这样做: grep -o "APPLICATION=MULTIRING" filename.csv | grep -c "APPLICATION=MULTIRING" 或者这个: grep -o "APPLICATION=MULTIRING" filename.csv | grep -c "" 但不可行。显然-c会终止任何其他命令。。为什么?从实际情况看,你投入的资金表明: 在filename.csv中

我想搜索一个字符串(目前不是模式),只打印一次匹配的字符串和匹配的行数

常识告诉我必须这样做:

grep -o "APPLICATION=MULTIRING" filename.csv | grep -c "APPLICATION=MULTIRING" 
或者这个:

grep -o "APPLICATION=MULTIRING" filename.csv | grep -c "" 

但不可行。显然
-c
会终止任何其他命令。。为什么?

从实际情况看,你投入的资金表明:

在filename.csv中查找“APPLICATION=MULTIRING”,然后查看这些结果并计算发生的次数

试一试 grep-o filename.csv中的“APPLICATION-MULTIRING”| wc-l

如果我没记错的话,这将计算输出的事件

grep-c不会终止其他命令,但将命令管道化到其中意味着它将充当过滤器。

类似的东西?--绝对是个便宜的把戏

awk '/APPLICATION=MULTIRING/ {count++} END {print "APPLICATION=MULTIRING", count }' filename.csv

这对我有用。而且,
grep-o
每行给出一个结果。因此,您可以使用
wc-l
来计算匹配数,而不是
grep-c
。grep-o“APPLICATION=MULTIRING”filename.csv | wc-l只打印外观数,而不打印“APPLICATION=MULTIRING”。仍然不明白为什么。啊,当我键入这个时,@fedorqui似乎说了几乎相同的话。grep-o“APPLICATION=MULTIRING”filename.csv | wc-l只打印外观的数量,而不打印“APPLICATION=MULTIRING”。还是不明白为什么。