>_ IzzyLab

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

awk: уникальные, сохранив порядок

средне

В /root/items.txt строки повторяются. Выпиши уникальные строки в /root/uniq.txt, сохранив порядок первого появления каждой.

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

Разбор темы

Убрать дубликаты, сохранив порядок первого появления, — задача, где sort -u не подходит, потому что он ещё и переставляет строки. В awk для этого держат ассоциативный массив-счётчик, ключом которого выступает вся строка ($0): по первому появлению счётчик ещё нулевой (ложь), при повторных — уже положительный (истина). Логическое отрицание этого счётчика и даёт условие «печатать только первую встречу»; действие по умолчанию (печать) выводит уцелевшие строки.

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

  1. в /root/uniq.txt уникальные строки в порядке первого появления

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