Filtrando el segundo campo de un conjunto de datos y luego usando uniq en la salida

0

Tengo un conjunto de datos que dice así:

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

Y así. Quiero filtrar de acuerdo con el segundo campo y luego ejecutar uniq para extraer solo la PRIMERA entrada. En este caso, quiero que la salida sea:

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

Parece que sería bastante fácil, pero el método simplemente me está resbalando. ¿Alguna ayuda?

Fyyz
fuente

Respuestas:

1

Puedes usar sortpara hacer el trabajo:

sort -k2,2 -u

-k2,2significa operar solo en la segunda columna, -usignifica único.

choroba
fuente
0

Hay una parte idiota de awk para hacerlo:

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

imprime la línea solo la primera vez que se ve el valor en la segunda columna

Glenn Jackman
fuente
0

Puede usar el siguiente comando para ordenarlo

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

La salida del archivo es la siguiente

ingrese la descripción de la imagen aquí

Espero que esto ayude

vembutech
fuente