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

标签 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'ing 输出,是否有一个标志来禁止列出 0 计数的文件?

圣洁

最佳答案

如何grep非零计数:
grep -rIcH 'string' . | grep -v ':0$'

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

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

    关于grep - 我如何 'grep -c' 并避免打印 '0' 计数为零的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565533/

    相关文章:

    awk - 在与 sed/awk 进行第一次模式匹配之前删除所有内容

    windows - Grep 认为文本文件是二进制的,但它不是

    linux - 如何将我的 grep 重定向到位于另一个目录中的 txt 文件?

    linux - 如果数字不在行首,则按数字排序

    linux - 如何获取特定进程的进程ID?

    linux - 用引号将文本文件中的所有行括起来 ('something' )

    linux - 使用具有模式映射的外部文件替换模式后的行

    regex - "*"在 grep 的正则表达式中的含义

    sed - 恢复使用 find 后跟 sed 创建的多个备份文件

    Linux:如何 grep 查找超过 100 毫秒的值