Я пытаюсь найти количество совпадений для данной строки в большом проекте. В настоящее время, чтобы сделать это с ag
я использую следующую команду:Подсчитайте общее количество совпадений в каталоге с ag
$ echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc
, который, очевидно, немного длинный и не очень интуитивным. Есть ли лучший способ получить общее количество совпадений в каталоге от ag
? Я прорыл документацию и не нашел там ничего полезного.
Edit: Благодаря recent commit к ag
, имена файлов могут быть удалены с ag
вместо sed
, так что это также работает:
$ echo `ag test -c --nofilename | sed "s/$/+/"`0 | bc
Примечание: Я понимаю, что я мог бы сделать это с ack -hcl searchterm
(ну, почти В моем конкретном случае мне понадобится также --ignore-dir building
), но поскольку это уже большой проект (и будет значительно расти), ускорение скорости, предлагаемое ag
, делает его предпочтительным (ack
занимает около 3 секунд для моего поиск vs ag
почти мгновенный результат), поэтому я хотел бы stic k с ним.
ли вы когда-нибудь найти ответ на этот вопрос? – jjaderberg
@jjaderberg Не совсем. Лучшим вариантом является опция '--stats', за которой следует разбор правильной строки. (например, 'ag --stats searchterm | tail -n 5 | head -n 1'). Я также отправил запрос на перенос для параметра «--stats-only», который запрещает печатать другое, в этом случае 'ag --stats searchterm | head -n 1' получит количество матчей. В обоих случаях вам все равно нужно отфильтровать «совпадения», чтобы получить только номер. – SnoringFrog