Фильтрация 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
вывод файла выглядит следующим образом
Надеюсь это поможет