Contar el número de coincidencias con grep

Para contar el número de líneas que contiene un determinado patrón podemos usar el operador -c de grep, contando con que patrón no significa palabra. Veamos paso a paso.

Vamos a buscar cuántas veces se encuentra el patrón «en» dentro del poema «Un soneto me manda hacer Violante» de Lope de Vega:

$ grep en violante.txt 
que en mi vida me he visto en tanto aprieto;
catorce versos dicen que es soneto;
Yo pensé que no hallara consonante,
mas si me veo en el primer terceto,
no hay cosa en los cuartetos que me espante.
Por el primer terceto voy entrando,
y parece que entré con pie derecho,
Ya estoy en el segundo, y aun sospecho

Vemos que se encuentra en ocho líneas, pero vemos que hay palabras que contienen «en» (dicen, pensé, entrando y entré) y las cuenta como coincidencia, porque, por defecto, grep no busca palabras sino patrones.

Si queremos buscar sólo las palabras, usaremos el modificador -w:

$ grep -w en violante.txt 
que en mi vida me he visto en tanto aprieto;
mas si me veo en el primer terceto,
no hay cosa en los cuartetos que me espante.
Ya estoy en el segundo, y aun sospecho

Y ahora sólo nos muestra las líneas en las que sí que está la palabra «en». Y nos devuelve cuatro líneas.

Veamos qué nos devuelve con el modificador -c en una y otra circunstancia. Empezaremos sin acotar, a ver si nos devuelve ocho como en la primera búsqueda de este artículo:

$ grep -c en violante.txt 
8

Y ahora comprobemos si acotando las búsquedas a palabras nos devuelve cuatro:

$ grep -wc en violante.txt 
4

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.