Удалите строку, если поле является дубликатом

Поиск awk (или sed) острота для удаления строк из вывода, если первое поле является дубликатом.

Пример для удаления дублирующихся строк, которые я видел:

awk 'a !~ $0; {a=$0}'

Испытанное использование его для основания без удачи (я думал, изменяя 0$ на $1, добьется цели, но, казалось, не работало).

14
задан codeforester 1 December 2017 в 21:50
поделиться

2 ответа

awk '{ if (a[$1]++ == 0) print $0; }' "$@"

Это стандартное (очень простое) использование ассоциативных массивов.

26
ответ дан 1 December 2019 в 07:12
поделиться

Это способ удаления дубликатов.

awk '!_[$1]++' file
10
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: