Filtrando o 2º campo de um conjunto de dados e, em seguida, usando uniq na saída

0

Eu tenho um conjunto de dados que é assim:

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

E assim por diante. Eu quero filtrar de acordo com o segundo campo e, em seguida, executar um uniq para puxar apenas a primeira entrada. Neste caso, quero que a saída seja:

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

Isso parece ser bem fácil, mas o método está apenas me escapando. Alguma ajuda?

    
por Fyyz 04.01.2015 / 22:28

3 respostas

1

Você pode usar sort para fazer o trabalho:

sort -k2,2 -u

-k2,2 significa operar somente na segunda coluna, -u significa exclusivo.

    
por 04.01.2015 / 23:26
0

Há um idiota de awk para fazer isso:

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

imprima a linha apenas na primeira vez em que o valor na segunda coluna for visto

    
por 04.01.2015 / 23:37
0

Você pode usar o comando abaixo para resolver

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

a saída do arquivo é a seguinte

Espero que isso ajude

    
por 05.01.2015 / 00:03

Tags