Sto tentando di trovare il numero di corrispondenze per una determinata stringa in un grande progetto. Attualmente, per fare questo con ag
Sto usando il seguente comando:Contare il numero totale di corrispondenze nella directory con ag
$ echo 0$(ag -c searchterm | sed -e "s/^.*:/+/") | bc
che è ovviamente un po 'lungo e non molto intuitivo. C'è un modo migliore per ottenere il numero totale di partite in una directory da ag
? Ho esaminato la documentazione e non ho trovato nulla di utile lì.
Edit: Grazie ad un recent commit-ag
, i nomi dei file possono essere rimossi con ag
invece di sed
, quindi questo funziona anche:
$ echo `ag test -c --nofilename | sed "s/$/+/"`0 | bc
Nota: Mi rendo conto che avrei potuto fare questo con ack -hcl searchterm
(Beh, quasi Nel mio caso specifico avrei bisogno di un --ignore-dir building
anche lì), ma dato che questo è già un grande progetto (e crescerà considerevolmente), l'aumento di velocità offerto da ag
lo rende preferibile (ack
richiede circa 3 secondi per cerca il risultato quasi istantaneo di ag
), quindi mi piacerebbe k con esso.
Hai mai trovare una risposta a questa domanda? – jjaderberg
@jjaderberg Non esattamente. L'opzione migliore sembra essere l'opzione '--stats 'seguita dall'analisi della riga corretta. (ad esempio, 'ag --stats searchterm | tail -n 5 | head -n 1'). Ho anche inviato una richiesta di pull per un'opzione '--stats-only' che impedisce la stampa di qualsiasi altra cosa, in questo caso' ag --stats searchterm | head -n 1' otterrebbe il numero di partite. In entrambi i casi dovrai comunque filtrare le "corrispondenze" per ottenere solo il numero. – SnoringFrog