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"