我试图在一个大型项目中查找给定字符串的匹配数。当前,要使用ag
为此,我正在使用以下命令:
$ echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc
这显然有点冗长,而且不是很直观。是否有更好的方法从
ag
获取目录中的匹配总数?我已经仔细阅读了文档,但找不到任何有用的信息。编辑:由于对
ag
的recent commit,可以用ag
代替sed
剥离文件名,因此这也可以:$ echo `ag test -c --nofilename | sed "s/$/+/"`0 | bc
注意:我知道我可以使用
ack -hcl searchterm
来做到这一点(嗯,几乎。在我的特定情况下,我也需要在其中添加--ignore-dir building
),但是由于这已经是一个大项目(并且将会有很大的发展) ,ag
提供的速度提升使其更为可取(ack
大约需要3秒的时间,而ag
几乎是瞬时的结果),所以我要坚持下去。 最佳答案
我用ag本身来匹配统计数据。例如。:
>$ ag --stats --java -c 'searchstring' | ag '.*matches'
>$ 22 matches
>$ 6 files contained matches
提前过滤以仅打印匹配项数:
>$ ag --stats --java -c 'searchstring' | ag -o '^[0-9]+(?=\smatches)'
>$ 22
关于full-text-search - 用ag计算目录中的匹配总数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31995820/