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