>_ IzzyLab

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

Убери дубликаты, сохрани порядок

средне

В /root/emails.txt список адресов с дублями. Создай /root/unique.txt, где каждый адрес встречается один раз, а порядок — как у первых вхождений в исходном файле (просто sort -u не подойдёт — он сломает порядок).

Что потренируешь:
  • awk
  • ассоциативные массивы
  • дедупликация
  • конвейер
  • перенаправление

Разбор темы

Задача про разницу между дедупликацией и сортировкой: sort -u убирает дубли, но переупорядочивает строки по алфавиту, а тут нужно сохранить порядок первого появления. Значит, сортировать нельзя — надо идти по файлу сверху вниз и запоминать уже виденные строки в множестве (ассоциативном массиве), печатая строку только при первой встрече. Это классический паттерн для awk: у него есть массивы с ключом-строкой и модель «условие → печать», в которую вся логика умещается коротко. Результат перенаправляют в новый файл.

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

  1. в /root/unique.txt 5 уникальных адресов
  2. дубликаты убраны
  3. порядок первых вхождений сохранён

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