Próbuję znaleźć liczbę dopasowań dla danego ciągu dla dużego projektu. Obecnie to zrobić z ag
Używam następujące polecenia:Policz całkowitą liczbę dopasowań w katalogu z ag
$ echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc
co jest oczywiście nieco przydługi i nie bardzo intuicyjny. Czy istnieje lepszy sposób na uzyskanie całkowitej liczby dopasowań w katalogu od ag
? Przeszukałem dokumentację i nie znalazłem tam niczego przydatnego.
Edit: Dzięki recent commit do ag
, nazwy plików mogą być usunięte z ag
zamiast sed
, więc to działa również:
$ echo `ag test -c --nofilename | sed "s/$/+/"`0 | bc
Uwaga: Zdaję sobie sprawę, co mogłem zrobić to z ack -hcl searchterm
(no, prawie W moim konkretnym przypadku potrzebowałbym również --ignore-dir building
), ale ponieważ jest to już duży projekt (i będzie znacznie rósł), zwiększenie prędkości oferowane przez ag
czyni to lepszym (ack
zajmuje około 3 sekund dla mojego przeszukuje prawie natychmiastowy wynik w postaci ag
), więc chciałbym k z tym.
Czy kiedykolwiek znaleźć odpowiedź na to pytanie? – jjaderberg
@jjaderberg Niezupełnie. Najlepszą opcją wydaje się opcja '--stats', po której następuje parsowanie poprawnej linii. (np. 'ag --stats searchterm | tail -n 5 | head -n 1'). Przesłałem również żądanie pobrania dla opcji '--stats-only', która uniemożliwia drukowanie innych elementów, w tym przypadku' ag --stats searchterm | head -n 1' otrzyma liczbę dopasowań. W obu tych przypadkach musisz odfiltrować "mecze", aby uzyskać tylko liczbę. – SnoringFrog