Cómo usar la coincidencia negativa con grep en Linux (Imprimir líneas que no coinciden)

Concha de golpe

grep es una utilidad de búsqueda de línea de comandos para Linux que imprimirá líneas en archivos que coincidan con un patrón o expresión regular. También es útil invertir las coincidencias, lo que filtrará todas las líneas de un archivo que contenga la cadena dada.

Coincidencia negativa con grep

Para utilizar la coincidencia negativa en grepdebe ejecutar el comando con el -v o --invert-match banderas Esto imprimirá solo las líneas que no coincidan con el patrón dado.

grep -v "bar" file

Sin embargo, tenga en cuenta que desde grep no coincide con nada, no hay forma de usar el -o bandera para imprimir «solo las coincidencias», ya que nada ha coincidido técnicamente. grep puede hacer coincidir varias veces por línea, pero en este caso, no importará si hay varias coincidencias. Cualquier coincidencia individual causará grep para omitir la línea.

Esto también funciona con expresiones regulares (regex) e imprimirá cualquier línea que se registre para que coincida con la expresión regular.

grep -v "foo ba[rz]" file

Si bien puede escribir expresiones regulares que hagan coincidencias negativas, generalmente es más fácil invertir la coincidencia de esta manera.

Alternativamente, si prefiere usar awkpuede usar el modificador de exclamación para invertir expresiones regulares.

awk '!/bar/' file

Nombres de archivo coincidentes negativos

las minúsculas -l la bandera causará grep para imprimir los nombres de archivo que contienen coincidencias en lugar del contenido coincidente real. Esto puede ser útil al escanear una lista de archivos, pero de manera similar, también es útil invertir esto a veces.

el inverso de -l es la variante mayúscula, -Lque hace lo contrario:

grep -L "bar" ./*.txt

Asegúrese de no usar el -v bandera con -L para invertir la coincidencia antes de imprimir los archivos sin la coincidencia, o se encontrará con una situación de «dobles opuestos» en la que la coincidencia se invierte dos veces y no tiene el efecto deseado.

Deja un comentario

En esta web usamos cookies para personalizar tu experiencia de usuario.    Política de cookies
Privacidad