Grep 计数匹配 'X' 以上

Mic*_*ynn 5 grep

我试图找出一个匹配高于特定计数的所有计数的命令。我在用

grep -src 'Bicycle' /cygdrive/c/Documents/* |grep -v ':0$'
Run Code Online (Sandbox Code Playgroud)

输出是:

/cygdrive/c/Documents/blahhh.txt:1
/cygdrive/c/Documents/blahhh.txt:3
/cygdrive/c/Documents/bla0.txt:5
/cygdrive/c/Documents/blahg.txt:23
Run Code Online (Sandbox Code Playgroud)

但我只希望它输出:

/cygdrive/c/Documents/blahg.txt:23
Run Code Online (Sandbox Code Playgroud)

我已经搜索了很多。如果有人能引导我朝着正确的方向前进,那就太棒了。

Ini*_*ian 6

一个简单的方法来做到这将是管道的输出grep,以awk通过设置去限制器分析它:,并检查是否最后的场数比大于X您要界定什么

grep -src 'Bicycle' /cygdrive/c/Documents/* | awk -F: '$NF+0 > 1'
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,我取出了大于 的出现次数1。根据需要修改它。

$NF+0 > 1over just的原因$NF > 1是做一个纯数值计算,考虑一个空字符串或一个数字字符串存在的情况,0将它加到一个合适的数字上进行比较,否则我们在比较的两边都有不正确的类型。

如何awk在字符串和数字之间转换

如果出于某种原因,您需要强制将数字转换为字符串,请将该数字与空字符串"". 要强制将字符串转换为数字,请向该字符串添加零。