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

时间:2016-02-22 22:51:44

标签: grep

命令'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

2 个答案:

答案 0 :(得分:0)

只需使用awk。例如使用awk '/jill/{c++} ENDFILE{if (c) print FILENAME":"c; c=0}' * 的GNU awk:

from operator import itemgetter

for key, freq in sorted(freq_table_raw.items(), key=itemgetter(1)):
    print key, freq

答案 1 :(得分:0)

如何grep非零计数:

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

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

(我知道OP排除了管道技巧,但这对我有用。)