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.