Практическое задание

Эта задача — шаг 8 курса «Текст в консоли: grep, sed, awk»

Извлеки IPv4 строго

средне

Из /root/access.txt извлеки IPv4-адреса, но только корректные — каждый октет от 0 до 255 (в логе попадаются и мусорные «адреса» вроде 999.999.999.999). Результат — в /root/valid_ips.txt, по одному адресу на строку, без повторов.

Что потренируешь:
  • grep
  • regex
  • альтернация
  • ipv4

Разбор темы

Наивный шаблон «одна-три цифры» для октета пропускает мусор вроде 999 или 256 — диапазон 0–255 одним классом символов не описать. Решение — альтернация | из нескольких непересекающихся поддиапазонов, где для старших значений фиксируются отдельные разряды, а опциональность разряда задаётся ?. Четыре таких октета склеиваются экранированными точками, а grep -Eo печатает только совпавшие адреса; уникальность добавляется отдельным проходом сортировки.

Что проверяется

  1. Валидные IP извлечены
  2. Некорректные адреса отсеяны
  3. IP уникальны

Как это выглядит