grep -c
es útil para encontrar cuántas veces aparece una cadena en un archivo, pero solo cuenta cada aparición una vez por línea. ¿Cómo contar múltiples ocurrencias por línea?
Busco algo más elegante que:
perl -e '$_ = <>; print scalar ( () = m/needle/g ), "n"'
Respuesta aceptada:
-o
de grep solo generará las coincidencias, ignorando las líneas; wc
puede contarlos:
grep -o 'needle' file | wc -l
Esto también coincidirá con 'agujas' o 'multiagujas'.
Para hacer coincidir solo palabras sueltas, use uno de los siguientes comandos:
grep -ow 'needle' file | wc -l
grep -o 'bneedleb' file | wc -l
grep -o '<needle>' file | wc -l