順序を維持しながら、隣接する重複行を削除します。

順序を維持しながら、隣接する重複行を削除します。

各列の名前が複数回繰り返される列を持つファイルがあります。同じ名前の異なる反復と隣接していない同じ名前の異なる反復を維持しながら、各反復を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は重複しません)。

隣接していない複数のブロックで繰り返される名前を維持しながら、各ブロックの一意の名前を維持する方法はありますか?

ベストアンサー1

uniqあなたのためにこれをします:

$ uniq inputfile
Golgb1
Akna
Spata20
Golgb1
Akna

おすすめ記事