Tengo un archivo con una columna con nombres que se repiten varias veces cada uno. Quiero condensar cada repetición en una, manteniendo cualquier otra repetición del mismo nombre que no sea adyacente a otras repeticiones del mismo nombre.
P.ej. Quiero girar el lado izquierdo al lado derecho:
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Esto es lo que he estado usando:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
Sin embargo, este método solo mantiene un representante de la izquierda (es decir, Golb1 y Akna no se repiten).
¿Hay alguna manera de mantener nombres únicos para cada bloque, manteniendo los nombres que se repiten en múltiples bloques no adyacentes?
Respuesta aceptada:
uniq
hará esto por ti:
$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna