Grep игнорирует пробелы

Grep игнорирует пробелы

Я пытаюсь выполнить поиск определенного IP-адреса в большом списке IP-адресов, но получаю ложные срабатывания из-за пробелов. Пожалуйста, рассмотрите следующий пример:

$ 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 игнорирует пробел и возвращает неправильные результаты. Как мне заставить grep распознать, что "1.1 192.168" не равно "1.1.192.168"?

решение1

Привыкайте заключать переменные в кавычки. Вы не найдете совпадений после

echo "$a" | grep "$ip"

Это не общее решение, в следующий раз между IP-адресами может быть только один пробел. Используйте

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

Все еще проблемы, вы можете соответствовать 101.1.192.168.
Так что попробуйте опции -Fw

то естьecho "$a" | grep -Fw "$ip"

Связанный контент