我如何'grep -c'并避免打印零'0'计数的文件

问题描述 投票:5回答:2

命令'grep -c blah *'列出了所有文件,如下所示。

 % grep -c jill *
 file1:1
 file2:0
 file3:0
 file4:0
 file5:0
 file6:1
 % 

我想要的是:

 % grep -c jill * | grep -v ':0'
 file1:1
 file6:1
 % 

而不是像上面那样管道和grep输出输出,是否有一个标志来禁止列出0计数的文件?

SJ

grep
2个回答
0
投票

只需使用awk。例如使用GNU awk for ENDFILE

awk '/jill/{c++} ENDFILE{if (c) print FILENAME":"c; c=0}' *

0
投票

How to grep nonzero counts:

grep -rIcH 'string' . | grep -v ':0$'

  • -r Recurse子目录。
  • -I忽略二进制文件(感谢@tongpu,术士)。
  • -c显示比赛的数量。令人讨厌的是,包括0计数文件。
  • -H显示文件名,即使只有一个文件(感谢@CraigEstey)。
  • 'string'你的字符串就在这里。
  • .从当前目录开始。
  • | grep -v ':0$'删除0计数文件。 (感谢@LaurentiuRoescu

(我意识到OP不包括管道技巧,但这对我有用。)

© www.soinside.com 2019 - 2024. All rights reserved.