Ho un file con una colonna con nomi che si ripetono un numero di volte ciascuno. Voglio condensare ogni ripetizione in una, mantenendo tutte le altre ripetizioni con lo stesso nome che non sono adiacenti ad altre ripetizioni con lo stesso nome.
Per esempio. Voglio girare il lato sinistro verso il lato destro:
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Questo è quello che ho usato:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
Tuttavia, questo metodo mantiene solo un rappresentante da sinistra (cioè Golb1 e Akna non vengono ripetuti).
C'è un modo per mantenere nomi univoci per ogni blocco, mantenendo i nomi che si ripetono in più blocchi non adiacenti?
Risposta accettata:
uniq
lo farà per te:
$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna