Grep ignora los espacios en blanco

Grep ignora los espacios en blanco

Estoy intentando buscar una lista grande de direcciones IP para una IP en particular, pero obtengo falsos positivos debido a los espacios. Considere el siguiente ejemplo:

$ a="192.168.1.1    192.168.1.2"
$ ip="1.1.192.168"

$ echo $a | grep "$ip"
192.168.1.1 192.168.1.2

Grep ignora el espacio y devuelve resultados incorrectos. ¿Cómo puedo hacer que grep reconozca que "1.1 192.168" no es igual a "1.1.192.168"?

Respuesta1

Acostúmbrate a citar tus variables. No encuentras una coincidencia después

echo "$a" | grep "$ip"

Esta no es una solución general; la próxima vez podría haber solo un espacio entre las IP. Usar

ip="1[.]1[.]192[.]168"

Aún así hay problemas, es posible que coincidas 101.1.192.168.
Entonces prueba las opciones -Fw

es decirecho "$a" | grep -Fw "$ip"

información relacionada