我试图找出一个匹配高于特定计数的所有计数的命令。我在用
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)
我已经搜索了很多。如果有人能引导我朝着正确的方向前进,那就太棒了。
一个简单的方法来做到这将是管道的输出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将它加到一个合适的数字上进行比较,否则我们在比较的两边都有不正确的类型。
如果出于某种原因,您需要强制将数字转换为字符串,请将该数字与空字符串
"". 要强制将字符串转换为数字,请向该字符串添加零。