Для поиска IP-адресов с помощью команды grep
в Linux вы можете использовать регулярные выражения для соответствия шаблону IP-адреса. Вот несколько методов с примерами кода:
Метод 1: базовый grep
grep -E -o "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt
Эта команда ищет IP-адреса в файле file.txt
и печатает только совпадающие IP-адреса.
Метод 2: grep с PCRE (регулярные выражения, совместимые с Perl)
grep -P -o "\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b" file.txt
Эта команда использует PCRE для сопоставления IP-адресов в файле file.txt
.
Метод 3: grep с фильтрацией диапазона IP
grep -E -o "([0-9]{1,3}\.){3}[0-9]{1,3}" file.txt | awk -F'.' '$1<=255 && $2<=255 && $3<=255 && $4<=255'
Эта команда отфильтровывает недопустимые IP-адреса с октетами больше 255.
Метод 4: сопоставление адресов IPv6
grep -E -o "([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}" file.txt
Эта команда ищет адреса IPv6 в файле file.txt
и печатает их.
Это всего лишь несколько примеров использования grep
для поиска IP-адресов. Вы можете настроить регулярные выражения в соответствии со своими требованиями.