Я пытался получить эффективное регулярное выражение для проверки IPv4, но без особой удачи. Казалось, в какой-то момент у меня было это с (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}
, но это дает странные результаты:
$ grep --version
grep (GNU grep) 2.7
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.1
192.168.1.1
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.255
192.168.1.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.255.255
$ grep -E '\b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?(\.|$)){4}\b' <<< 192.168.1.2555
192.168.1.2555
Я выполнил поиск, чтобы увидеть, был ли уже задан вопрос и дан ответ, но другие ответы, по-видимому, просто показывают, как определить 4 группы из 1-3 чисел, или не работают для меня.