Grep ignora espaços em branco

Grep ignora espaços em branco

Estou tentando pesquisar uma grande lista de endereços IP para um determinado IP, mas estou recebendo falsos positivos por causa de espaços. Considere o seguinte exemplo:

$ 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 o espaço e retorna resultados errados. Como posso fazer com que o grep reconheça que "1.1 192.168" não é igual a "1.1.192.168"?

Responder1

Acostume-se a citar suas variáveis. Você não encontra uma correspondência depois

echo "$a" | grep "$ip"

Esta não é uma solução geral; da próxima vez, poderá haver apenas um espaço entre os IPs. Usar

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

Ainda há problemas, você pode corresponder 101.1.192.168.
Então tente as opções -Fw

ou sejaecho "$a" | grep -Fw "$ip"

informação relacionada