Фильтрация 2-го поля из набора данных и затем использование uniq на выходе

У меня есть набор данных, который выглядит так:

AAAAA 11111 Data1
AAAAA 11111 Data2
AAAAA 11111 Data3
AAAAA 11112 Data4
AAAAA 11112 Data5
AAAAA 11112 Data6
AAAAA 11112 Data7
AAAAA 11113 Data8
AAAAA 11114 Data9

И так далее. Я хочу отфильтровать в соответствии со 2-м полем, а затем запустить Uniq, чтобы получить только первую запись. В этом случае я хочу вывод:

AAAAA 11111 Data1
AAAAA 11112 Data4
AAAAA 11113 Data8
AAAAA 11114 Data9

Кажется, это будет довольно легко, но метод просто ускользает от меня. Любая помощь?

3 ответа

Решение

Ты можешь использовать sort сделать работу:

sort -k2,2 -u

-k2,2 средства действуют только на 2-й столбец, -u означает уникальный.

Есть идиоматическая часть awk, чтобы сделать это:

awk '!seen[$2]++' file

выводить строку только при первом просмотре значения во 2-м столбце

Вы можете использовать команду ниже, чтобы разобраться

sort new.txt | rev | uniq -s 6 | rev

вывод файла выглядит следующим образом

введите описание здесь

Надеюсь это поможет

Другие вопросы по тегам