それぞれが何度も繰り返される名前を持つ1つの列を持つファイルがあります。同じ名前の他のリピートに隣接していない同じ名前の他のリピートを保持しながら、各リピートを1つに凝縮したいと思います。
例えば。左側を右側に向けたい:
Golgb1 Golgb1
Golgb1 Akna
Golgb1 Spata20
Golgb1 Golgb1
Golgb1 Akna
Akna
Akna
Akna
Spata20
Spata20
Spata20
Golgb1
Golgb1
Golgb1
Akna
Akna
Akna
これは私が使用しているものです:perl -ne 'print if ++$k{$_}==1' file.txt > file2.txt
ただし、この方法では、左から1人の代表者しか保持されません(つまり、Golb1とAknaは繰り返されません)。
隣接していない複数のブロックで繰り返される名前を保持しながら、各ブロックの一意の名前を保持する方法はありますか?
承認された回答:
uniq
あなたのためにこれを行います:
$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna