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