我试图在大型项目中找到给定字符串的匹配数.目前,要使用ag执行此操作,我使用以下命令: $echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc 这显然有点冗长而且不太直观.有没有更好的方法来获
$echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc
这显然有点冗长而且不太直观.有没有更好的方法来获取ag目录中的匹配总数?我已经挖掘了文档,但在那里找不到任何有用的东西.
编辑:感谢recent commit到ag,文件名可以用ag而不是sed去除,所以这也有效:
$echo `ag test -c --nofilename | sed "s/$/+/"`0 | bc
注意:我意识到我可以用ack -hcl searchterm做这个(嗯,差不多.在我的具体情况下我也需要一个–ignore-dir建筑物),但因为这已经是一个大项目了(并且会大幅增长),ag提供的速度提升使其更受欢迎(我的搜索时间约为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