Ich habe eine Datei mit einer Spalte mit Namen, die sich jeweils mehrmals wiederholen. Ich möchte jede Wiederholung zu einer zusammenfassen, während alle anderen Wiederholungen mit demselben Namen beibehalten werden, die nicht an andere Wiederholungen mit demselben Namen angrenzen.
ZB möchte ich die linke Seite zur rechten Seite drehen:
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Dies ist, was ich verwendet habe: perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
Diese Methode hält jedoch nur einen Vertreter von links (dh Golb1 und Akna werden nicht wiederholt).
Gibt es eine Möglichkeit, eindeutige Namen für jeden Block beizubehalten, während Namen beibehalten werden, die sich in mehreren nicht benachbarten Blöcken wiederholen?