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

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

Белый список IP из заявок

сложно~10 мин

Коллеги прислали заявки на доступ в /root/access_requests.txt — в тексте IP-адреса, и не все из них настоящие: кто-то ошибся и написал октет больше 255. Собери в /root/allowlist.txt только корректные IPv4 (каждый октет 0–255) — по одному на строку, без повторов.

Что потренируешь:
  • grep -oE
  • альтернация
  • ipv4
  • границы слова
  • sort -u

Разбор темы

Шаблон «от одной до трёх цифр» для октета пропустит 300 и 999: диапазон чисел регулярка не понимает, она видит только символы. Поэтому диапазон 0–255 раскладывают на непересекающиеся куски по разрядам и склеивают альтернацией. Вторая ловушка — частичное совпадение: из 256.1.1.1 без границ можно выхватить корректный на вид 56.1.1.1. Граница слова \b требует, чтобы перед адресом и после него не было цифры, и отсекает такие обрезки.

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

  1. корректные адреса собраны
  2. некорректные адреса и их обрезки отсеяны
  3. адреса без повторов

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