Necesito buscar líneas que contengan alguna palabra pero que no contengan una segunda palabra.
Por ejemplo, busque líneas que contengan la palabra "Esto" pero no la palabra "rojo"
para que para un archivo que contenga estas líneas
This is a blue coat
This is a red coat
This is a purple coat
That is a coat
La búsqueda localizaría solo la primera y la tercera línea.
Gracias por cualquier consejo!
Respuestas:
Puede usar este comando para imprimir líneas que contienen
This
y nored
:\&
separa las ramas como un lógicoAND
porque queremos las líneas que satisfacen las dos condiciones (ramas),\(.*This\)
es la primera rama, podría ser simplementeThis
pero es más genérico de esa manera,\(.*red\)\@!
es la segunda rama,\@!
significa "coincidencia de ancho cero si el átomo anterior no coincide", como un lógicoNOT
.En otras palabras:
fuente
Mira esta publicación.
Combínalo con @romainl answer y podrás hacer lo que quieras.
Ejemplo: Digamos que quiero agregar un
const
a las funciones que no las tiene.Script VIM:
Salida:
Explicación:
- Consígueme todas las líneas que tiene
word =
- combinar reglas
- la línea no debe contener
const
.fuente