J'ai un fichier avec une colonne avec des noms qui se répètent plusieurs fois chacun. Je veux condenser chaque répétition en une seule, tout en gardant toutes les autres répétitions du même nom qui ne sont pas adjacentes aux autres répétitions du même nom.
Par exemple. Je veux tourner le côté gauche vers le côté droit :
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
Voici ce que j'ai utilisé :perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
Cependant, cette méthode ne conserve qu'un seul représentant à partir de la gauche (c'est-à-dire que Golb1 et Akna ne sont pas répétés).
Existe-t-il un moyen de conserver des noms uniques pour chaque bloc, tout en conservant des noms qui se répètent dans plusieurs blocs non adjacents ?
Réponse acceptée :
uniq
le fera pour vous :
$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna