Mostrar las líneas que no contienen un patrón con grep

Habitualmente usamos grep para buscar aquellas líneas de un fichero o grupo de ficheros que contienen un determinado patrón:

$ 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

Aquí vemos las líneas en las que se encuentra la combinación de letras «en», independientemente de que sea una palabra o formen parte de otra palabra. Pero puede ser que estemos buscando aquellas líneas que no contengan «en» (o cualquier otro patrón). Lo haríamos con el modificador -v:

$ grep -v en violante.txt 
Un soneto me manda hacer Violante
burla burlando van los tres delante.

y estoy a la mitad de otro cuarteto;

pues fin con este verso le voy dando.

que voy los trece versos acabando;
contad si son catorce, y está hecho.

Este operador es especialmente útil si queremos mostrar aquellas líneas que no estén vacías (^$):

$ grep -v "^$" violante.txt 
Un soneto me manda hacer Violante
que en mi vida me he visto en tanto aprieto;
catorce versos dicen que es soneto;
burla burlando van los tres delante.
Yo pensé que no hallara consonante,
y estoy a la mitad de otro cuarteto;
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,
pues fin con este verso le voy dando.
Ya estoy en el segundo, y aun sospecho
que voy los trece versos acabando;
contad si son catorce, y está hecho.

 

Deja una respuesta

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