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

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 ответа3

1

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

sort -k2,2 -u

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

0

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

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

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

0

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .