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

326
Fyyz

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

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 

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

0

3 ответа на вопрос

1
choroba

You can use sort to do the work:

sort -k2,2 -u 

-k2,2 means operate only on the 2nd column, -u means unique.

0
glenn jackman

There's an idiomatic piece of awk to do it:

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

print out the line only the first time the value in the 2nd column has been seen

0
vembutech

You can use the below command to sort it out

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

output of the file is as follows

enter image description here

Hope this helps