我需要获取标记的数量,例如在许多文件中找到的"103 = 16",它们有多少,但仅限于出现一次或多次的文件
我正在使用:
find . /opt/FIXLOGS/l51prdsrv\* -iname "TRADX\_*oe*.log" -type f -exec grep -F 103=16 -c {} /dev/null ;
它查找标记所在的文件并显示匹配的数量,但也显示0个匹配项
退货
file1.log:0
file2.log:0
file3.log:6
file4.log:0
使用a-i排除0或grep-v:0对我不起作用,得到的结果是:
grep::0:没有此类文件或目录
如何仅获取计数大于0的文件?
4条答案
按热度按时间yrdbyhpb1#
您是否尝试过在find/exec之后通过管道连接到grep来否定那些带零的值?
例如,下面这个对我很有效:
js81xvg62#
使用
awk
在一个位置执行所有操作whlutmcx3#
这就是grep的
-c
选项的工作方式:因此,它将打印0个计数,唯一的选择是使用
-v
或awk使用另一个grep删除0:a7qyws3x4#
当我将grep管道传输到;不包括零|grep -v“:0”
结尾是这样的:
查找. route -输入名称“TRAD_oe.log”-类型f -执行grep -cHF“103=16”{} ;|grep -v“:0”