Grep конкретные IP-адреса - PullRequest
       4

Grep конкретные IP-адреса

2 голосов
/ 21 декабря 2011

У меня есть IP-адрес, скажем 192.168.1.1, которому я хочу соответствовать.

У меня есть файл с именем afile, который выглядит следующим образом

 item1, item2, 192.168.1.1
 item3, item4, 192.168.1.10
 item5, item6, 192.168.2.1

Если я сделаю grep "192.168.1.1" afile, то первая и вторая строки afile совпадают, а это не то, что я хочу.

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

Любая помощь с этим приветствуется.

Что делать, если IP-адрес не находится в конце строки? Например, что, если столбцы два и три поменялись местами в моем файле примера?

Ответы [ 3 ]

7 голосов
/ 21 декабря 2011

Вам нужно добавить $ в конец регулярного выражения, чтобы оно совпадало с концом строки.Я бы также предложил экранировать точки, так как . в регулярном выражении означает «соответствовать любому символу».Таким образом, ваше регулярное выражение станет:

grep "192\.168\.1\.1$" afile
1 голос
/ 21 декабря 2011

grep - это сокращенная версия g/re/p, где «re» - это регулярное выражение.В RegEx точка означает «Любой символ».Чтобы сделать это буквальным периодом, избегайте его с обратной косой чертой.

grep "192\.168\.1\.1$" afile

Как уже говорили другие, вам также нужно сказать, что он заканчивается строкой.

1 голос
/ 21 декабря 2011

Вы хотите сопоставить конец строки после последнего. Попробуйте это:

grep "192.168.1.1$"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...