Просто змініть команду awk на стовпець, який ви хочете виконати, щоб видалити повторювані рядки на основі (у вашому випадку третій стовпець):
awk '!seen[$3]++' filename
Ця команда вказує, awkякі рядки надрукувати. Змінна $3містить весь вміст стовпця 3, а квадратні дужки мають доступ до масиву. Отже, для кожного третього стовпця рядка в імені файлу вузол названого масиву seenзбільшується, а рядок друкується, якщо вміст цього вузла (стовпця 3) раніше не був встановлений ( !).
Вищенаведена awkкоманда спрацює, якщо ваші стовпці у вхідному файлі розмежовані між собою spaceабо Tabміж ними, якщо стовпчики розмежовані чимось іншим, вам потрібно сказати йому, щоб пробудити його -Fпараметр. Так, наприклад, якщо всі стовпці розмежовані комою ( ,) і хочуть видалити рядки бази на третьому стовпці, що використовується -F','опція.
awk -F',' '!seen[$3]++' filename
-uбуде видаляти лише повторювані рядки , а не дублюючі ключі ... але я помиляюся.